变量名和变量地址有区别吗?为什么可以有int i,*p=i;也有int i,*p;p=i;这里p=i和p=&i有区别吗?

如题所述

变量名和变量地址有区别。在写程序的时候,我们既可以根据变量名来访问变量,也可以根据变量的地址来访问变量。根据变量名访问变量,是间接的访问变量,根据变量地址访问变量是直接访问变量。如定义int a = 10,系统会申请4字节空间来存放10,同时把申请的4字节空间地址赋值给a,当使用a访问变量的时候,系统先去根据a寻找到4字节空间的地址,再根据地址取出里面的值。int *b = 10,是把申请的4字节空间的地址直接赋给*b,通过指针b访问变量,直接取出b指向的地址的值。对你所提问的int i,*p=i;这是定义整形变量和整形指针,同时把你定义的整形变量的值赋值给指针p指向的值;int i,*p; p=&i;是定义一个整形变量和整形指针,同时把整形指针p指向定义的整形变量i。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-06
p是一个指针变量名,可以存放不同的变量的地址,i是一个变量名,地址只有一个,可以存放不同的变量。

第二个问题,p是指针变量,只能存放地址,所以不可以写成 p=i
第2个回答  2013-05-05
有区别
指针保存的是一个地址,是一个数字
变量保存的是一个数据,也是一个数字
它们之间赋值是无意义的
并且整数是不能赋给指针变量的
相似回答