c语言指针容易混淆的一些应用

Posted 狂奔De鸵鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言指针容易混淆的一些应用相关的知识,希望对你有一定的参考价值。

数组名称等价于指针

int iArry[] =1,2,3,4,5;
int * p;
p = iArry;
//数组名iArry等价于一个指向该数组的指针
//方括号[]数组下标运算符号 相当于取址
//怎么理解呢,iArry[1] 等价于 &iArry+1 或 *p+1;
//数组名iArry是指向该数组第一个元素的首地址
//iArry指向的地址 =  iArry[0] 但 iArry不等价于iArry[0] 也就是说iArry等价于&iArry[0]
//比如    &iArry[0]+1 等价于 iArry+1 

看测试代码

int main()

	int iArry[] =  1,2,3,4,5 ;
	int* p = iArry;

	printf(" *p =  %d\\r\\n",*p);
	printf(" *iArry =  %d\\r\\n", *iArry);
	printf(" iArry[0] =  %d\\r\\n", iArry[0]);
	printf(" *(&iArry[0]) =  %d\\r\\n", *(&iArry[0]));

	printf(" *p+1 =  %d\\r\\n", *p+1);
	printf(" *iArry+1 =  %d\\r\\n", *iArry+1);
	printf(" iArry[1] =  %d\\r\\n", iArry[1]);
	printf(" *(&iArry[0])+1 =  %d\\r\\n", *(&iArry[0])+1);

运行结果

以上是关于c语言指针容易混淆的一些应用的主要内容,如果未能解决你的问题,请参考以下文章

漫谈C语言指针

C语言中数组与指针的异同之处!你不知道的编程奥秘~

C语言中二维数组名是否可以看作指针数组名?

C语言指针与数组易混淆知识点

关于java的一些特点

C语言指针进阶第三站,数组指针!