指针表示元素的值还是地址

定义int a[20],*p=a;*(p++)表示a[1]的值还是地址?

指针是值,这个值代表着一个内存地址。

来说个生动点的,我们把内存抽象成格子,它从0起编号一直到N。

格子里面可以放A数字,也可以放B命令码,还可以放C格子编号。

A数字: 数字代表一切,整数,浮点数,是数字,字符也是数字,字符串就是按一定规则排列 的数字。所以,数字可以表达一切数据。

B命令码: 命令就是告诉CPU做什么,加减乘除,移动到某格子,取出某格子的东西放入另一个格子(其实,这也是一个数字)。

C格子编号:格子编号就是地址了,也许,我们可以给把它简称”指针“(当然,这也是一个数字。等等,我们好像明白了什么)。

一,普通指针,就是一个广义上的格子编号,这个格子里面可能放的是任何东西

二,函数指针
有时为了方便我们把一定数量的数字,一定数量的命令,和一定数量的格子编号
列在一张表上面,只需要拿到这张表,我们就可以一口气做一些事。
我们把这张表叫函数。这种表可能是占用了一定数量的连续格子来存放。
而表开始的格子编号实际上就代表了函数的位置,通常这个编号可以叫函数指针。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-10
p是指针,它的地址
*p是指针地址所指的值

所以*(p++)表示a[1]的值
p++ 标识a[1]的地址,即&a[1]本回答被提问者采纳
第2个回答  2013-01-10
int a[20]是20个内存空间上连续的int类型的变量,“a[1]” 明显说的是数组的第二个元素(数组的第一个元素是“a[0]”),所有“a[1]”代表一个变量,变量存的内容才是值。

可改变变量“a[1]”存储的值——>a[1]=5;
可以用这个变量存的值改变其他变量存储的值——>a[0]=a[1]
关于地址:
变量a[1]的地址应该这么写:&a[1]
或者这么写:a+1、或者p+1,因为数组名代表数组首元素的地址,即&a[0], 所有&a[1] ==&a[0]+1 == a+1 == p+1。
第3个回答  2013-01-10
表示a[1],p是指针,就是地址,取*号,就是内容了
第4个回答  2013-01-10
我去,LS一群人都理解错了,p刚开始是指向a[0]的,*(p++)表示的是a[0]的值,不信你自己试吧,后自增运算符,是先取当前的值,在自加
相似回答