C和指针 第六章 数组名与指针

指针的算术运算符是指针和数组之间的一种关联,但不是唯一关联:

 可以使用数组名作为指向数组第一个元素的指针,但是不可以给数组名赋新的值。

//如下声明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;
}

  

posted @ 2016-08-15 21:12  xnuwu  阅读(191)  评论(0编辑  收藏  举报