0
点赞
收藏
分享

微信扫一扫

为什么在printf中 数组名++不行,而数组名+1却可以

崭新的韭菜 2022-01-11 阅读 107
#include<stdio.h>
int main(){
	int arry[3] = {1,2,3};
	int *p = arry;
	printf("%d\n",*p);
	printf("%d\n",*p++);
	printf("%d\n",*arry++);
	printf("%d\n",*(arry+1));
} 

对上面的代码进行编译发现第三个printf出现报错,错误信息:lvalue required as increment operand

个人理解:数组名表示数组首元素的地址,而*arry++操作会改变了arry的首地址;由于arry是数组,其元素首地址应当是固定的,不能改变。。所以编译会报错。

举报

相关推荐

0 条评论