C++指针与数组之间的关系学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44470443/article/details/92556595

1. 内存分配

int a;			//分配4个字节的内存
int b[10];		//分配40个字节的内存	

2. b与&b的区别

b与&b所代表的数据类型不一样,b代表首元素的地址,&b代表整个数组的地址。

3. 数组与指针之间的转换

int a[3][5];

1. (a+i)		==>	表示第i行的地址,二级指针
2. *(a+i)		==>	表示第i行首元素的地址,一级指针

3. *(a+i)+j	==> 等价于&a[i][j]	
4. *(*(a+i)+j)	==> 等价于a[i][j]元素的值

5. a[i][j]	   <==> 等价于*(*(a+i)+j)
6. a[i] ==> a[0+i]	==> *(a+i)
7. a[i][j] ==> a[0+i][j] ==> *(a+i)[j] ==> *(a+i)[0+j] 
		   ==> *(*(a+i)+j)

猜你喜欢

转载自blog.csdn.net/weixin_44470443/article/details/92556595