标签:
指针的算术运算符是指针和数组之间的一种关联,但不是唯一关联:
可以使用数组名作为指向数组第一个元素的指针,但是不可以给数组名赋新的值。
//如下声明a int a[10]; //用a作为指向数组第一个元素的指针,可以修改a[0]; *a = 11; //通过a + 1来访问a[1]; *(a + 1) = 22;
但是试图使数组名指向其他地方是错误的:
#include <stdio.h>
int main()
{
char arr[] = "yangxunwu";
while (*arr != ‘\0‘) {
arr++;
}
return 0;
}
会发生下面的报错,表达式必须是可修改的左值。

如果需要可以把数组名赋值给真正的指针变量:
#include <stdio.h>
int main()
{
char arr[] = "yangxunwu";
//数组名赋值给指针变量
char *ptr = arr;
while (*ptr != ‘\0‘) {
ptr++;
}
return 0;
}
标签:
原文地址:http://www.cnblogs.com/yangxunwu1992/p/5774372.html