单片机/MCU论坛
直播中

小瓶子

8年用户 29经验值
擅长:测量仪表
私信 关注

指针数组与数组指针的区别

int (*p)[4];   // 定义一个数组指针,指向含4个元素的一维数组,数组元素是int类型。
int *p[4];     // 定义一个指针数组,数组中每个元素是一个指针,指针指向哪里就要根据程序来定了。

判断数组指针与指针数组主要通过运算符的优先级来判断。
int (*p)[4];  // 由于( )的优先级高,说明p是一个指针,指向一个一维数组的指针
int *p[4];    // 由于[ ]的优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组

回帖(7)

小瓶子

2016-7-15 22:07:58
指针变量的赋值:
(1)对指针变量初始化,例如:
     int a,*p=&a;
(2)用赋值语句,例如:
     int a,*p;
     p=&a;
举报

小瓶子

2016-7-15 22:41:08
指针变量的运算
1. 赋值运算
(1)把一个指针变量赋予指向相同数据类型的另一个指针变量。例如:
     int a,*pa,*pb;
     pa=&a;
     pb=pa;
(2)把数组的首地址赋给指向数组的指针变量。例如:
      inta[5],* pa;
      pa=a;
(3)把字符串的首地址赋给指向字符类型的指针变量。例如:
      char *str;
      str="C Language";
(4)把函数的入口地址赋给指向函数的指针变量。例如:
       int(*pf)();pf=f;/*f为函数名,此函数的值的类型为整型。*/
举报

小瓶子

2016-7-15 22:53:38
2. 加/减运算
3. 关系运算
4. 空运算
举报

小瓶子

2016-7-15 23:00:58
指针访问数组元素
下标法:用a形式访问数组元素;
指针法:*(ptr+i)形式间接访问的方法来访问数     组元素   
数组名法:*(a+i)
指针下标法:ptr
注:
      int a[10],*ptr;
      ptr=a;//ptr=&a[0]
举报

h1654155956.5608

2016-7-16 11:07:50
这对于老工程师来说也是云里雾里。
举报

小瓶子

2016-7-16 22:42:23
对二维数组的一些小理解
举报

小瓶子

2016-7-17 19:29:23
通过建立一个行指针来引用二维数组元素
举报

更多回帖

×
20
完善资料,
赚取积分