//p是一个变量,所以会在内存中开辟空间,因此也会有地址
如何查看变量名的类型?
一维数组:int arr[6]={1,2,3,4,5,6}
arr数组名:是数组中的首元素地址//除sizeof(arr)和&arr这两种情况时arr为整个数组
&arr为整个数组变量的地址
通过对arr的加减整数实现指针进行偏移,若&arr加减整数则是对整个数组的移位,会走向下一个数组的元素
&arr[0]<---->arr+0 &arr[1]<---->arr+1
arr[i]=*&arr[i]=*arr+i
二维数组:float scores[3][3];scores[3][3]为值
scores<---->&scores[0]//二位数组首地址
&scores<---->二维变量的地址
scores[0]是数组的第一个元素地址<---->&scoers[0][0]
scores[1]是数组的第二个元素地址<---->&scores[1][0]
在 C 语言中,指针数组和数组指针是两个不同的概念。
指针数组是指一个数组,其元素都是指针:例如: int *ptrArray[5]; 这里 ptrArray 是一个包含 5 个指向 int 类型变量的指针的数组。
数组指针是指向一个数组的指针:例如: int (*ptr)[5]; 这里 ptr 是一个指向包含 5 个 int 类型元素的数组的指针。
关键的区别在于:
1. 定义形式不同:指针数组是“指针的数组”,数组指针是“指向数组的指针”。
2. 指向的对象不同:指针数组中的每个元素都是指针,指向不同的对象;数组指针指向的是一个完整的数组。
在实际使用中,需要根据具体的需求来选择使用指针数组还是数组指针。