• 黑马程序员-c语言指针的学习


    c语言的难点和精华部分就是指针,能够将指针完全理解并且将其运用熟练不是一件容易的事情,其中有几个知识点比较绕一些。

    1.数组指针与指针数组的区别。

       数组指针是一个指针,是指向数组的指针,就如同int*,char*型指针,只不过它是指向数组的(首元素),大小为4(32位平台下),通过它就可以做找到整个数组。

     1 #include <stdio.h>
     2 int main(int argc, char *argv[])
     3 {
     4     int a[3][4] = {{0,1,2,4},
     5                    {5,6,7,8},
     6                    {9,10,11,12}};
     7     int (*p)[4];
     8     p = a;
     9     printf("%d",**(p +1)) ;
    10     return 0;
    11 }

    其中 int (*p)[4] 是一个二维的数组指针。

    指针数组是一个数组,数组的元素都是指针而已,看下面代码

     1 #include <stdio.h> 
     2 int main(int argc, char *argv[])
     3 {
     4     int a[3][4] = {{0,1,2,4},
     5            {5,6,7,8},
     6             {9,10,11,12}};
     7    int *p[3];
     8    for(int i=0;i<3;i++){
     9    p[i] = a[i];
    10  }
    11    printf("%d",*p[1]) ;
    12    return 0;
    13  } 

    int *p[3]里面存的都是指针

    2.指针函数和函数指针的区别

    指针函数是一个函数,它的返回值是一个指针而已。其实准确来说没有指针函数这么一说,只有返回值为指针的函数或者参数为指针的函数

    函数指针是一个指针,这个指针指向具体的一个函数。它在程序设计中是非常有用的,可以显著的减少代码量和优化代码结构,下面是一个简单的用法示例。

     1 #include "stdio.h"
     2 
     3 #define OK 1
     4 
     5 int Fun1(int num)
     6 {
     7     printf("The Fun1 value is %d
    ",num);
     8     return OK;
     9 } 
    10 
    11 int Fun2(int num)
    12 {
    13     printf("The Fun2 value is %d
    ",num);
    14     return OK;
    15 } 
    16 
    17 int Fun3(int num)
    18 {
    19     printf("The Fun3 value is %d
    ",num);
    20     return OK;
    21 } 
    22 
    23 
    24 int main()
    25 {   
    26     int i,state;
    27     //定义函数指针 
    28     int (*Fun_p[3])(int num); 
    29     //初始化函数指针 
    30     Fun_p[0] = Fun1;   
    31     Fun_p[1] = Fun2;
    32     Fun_p[2] = Fun3;
    33     
    34     for(i=0;i<3;i++)
    35        state = Fun_p[i](i);
    36     getchar();
    37     return ;
    38 }
  • 相关阅读:
    python网络编程 — HTTP客户端
    实验吧Web-天网管理系统
    实验吧Web-FALSE
    实验吧Web-Forms
    离散数学-集合运算基本法则
    sublime text3编译运行C,Java程序的一些配置
    kali Rolling 安装QQ和虚拟机
    python并行任务之生产消费模式
    Linux磁盘管理
    python网络编程之网络主机信息
  • 原文地址:https://www.cnblogs.com/pangjiayang/p/3956339.html
Copyright © 2020-2023  润新知