经常容易混淆的指针2020-11-24

2020-12-11  本文已影响0人  宜居远控

第一组

int *a[10];

这是指针数组  代表数组里的每个元素是指针 常用来保存多个字符串

int (*a)[10];

这是数组指针  占4个字节  常用于二维数组 作为参数传递

int **p;

二级指针 保存一级指针的地址

用法1 

int *a;

int **p;

p=&a;

用法2

int **p;

int *q[10];

将一个指针数组 *q[10],作为一个参数传递的时候,常定义为**p的形式

例子:

void fab(**p)

{

int i=0;

for(i=0;i<5;i++)

{

printf("%d",p[i]);   //*(p+i)

}

}

int main(void)

{

int (* a)[4]={1,2,3,4};

fab(a);

}


第二组

int *fab(void);

这是指针函数  本质是一个函数 它的返回值是一个指针而已

int (* fan)(void);

这是函数指针 含义:保存一个函数的首地址  我们可以用函数指针变量来代替它使用

把一个函数作为参数 传递给另一个函数的时候  采用 只用函数名就可以替代

指针只能保存开辟好空间的地址 不能随意保存地址

上一篇 下一篇

猜你喜欢

热点阅读