C语言中的指向数组的指针怎么理解?

兄弟们,打扰一下,C语言中的指向数组的指针怎么理解?
最新回答
涟漪幽香

2024-05-06 07:12:50

数组名并不是一个普通的变量,而是一个指向数组首元素的指针。也就是说,我们可以用数组名来初始化一个对应类型的指针。虽然数组名是指针,但它是一个指针常量。也就是说,不带下标的数组名不能作为左值。指针是一种数据类型,所以,我们可以用指针类型来创建一个数组。声明一个指针数组的语句格式是:
指针类型 * 数组名[常量表达式];
对指针数组的操作和对指针变量的操作并无不同.
青柠之恋

2024-05-06 04:58:51

要点:理解数组名其实就是一把指针!它指向所有元素的第一个int a[10]; 则它的内存分布:a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] 数组名 a 就是指向了第一个元素 a[0] 的地址(注意是地址)所以上面的也可表示为: *(a+0) *(a+1) *(a+2) *(a+3) *(a+4) *(a+5) *(a+6) *(a+7) *(a+8) *(a+9)这是一样的!而如果定义一把指针并赋值: int *p; p = a;则p 现在和a都指向了第一个元素a[0]的地址,所以它的用法和a一样如:*(p+0)=p[0]=a[0]=*(a+0) , *(p+1)=p[1]=a[1]=*(a+1)……看领会下就懂了哦~~~
暧昧不是爱情是毒药

2024-05-06 06:39:36

指向数组的指针其实就是指向数组第一个元素的指针,C语言中数组名就是指向数组中第一个元素的指针。如有数组a[10],那么a就是指向第一个元素a[0]的指针
被強煎的蛋

2024-05-06 14:02:23

c语言中,在函数体中或在函数外部定义的数组名可以认为是一个存放地址的指针变量名,其中的地址值是数组第一个元素的地址,也就是数组所占一串连续存储单元的起始地址,定义数组时的类型即是此指针变量 的基类型。