C语言 如果我定义了一个指针 int *p 和变量 int p, 他俩之间有什么关系吗?
如果我定义了一个指针int*p和变量intp,他俩之间有什么关系吗?比如:int*p;p=&a;这两句合在一起该怎么理解?...
如果我定义了一个指针 int *p 和变量 int p, 他俩之间有什么关系吗?比如:
int *p;
p=&a;
这两句合在一起该怎么理解? 展开
int *p;
p=&a;
这两句合在一起该怎么理解? 展开
2个回答
展开全部
int *p;
int a=1;
p=&a;
p定义成了一个整型指针,而a定义成了一个初始值为1的整型变量。
指针是用来保存对应类型的变量的地址的,所以p=&a;的意思是用指针p来保存变量a的地址。
而如果同时定义int *p;int p;会发生编译时错误,因为p重复定义了。
int a=1;
p=&a;
p定义成了一个整型指针,而a定义成了一个初始值为1的整型变量。
指针是用来保存对应类型的变量的地址的,所以p=&a;的意思是用指针p来保存变量a的地址。
而如果同时定义int *p;int p;会发生编译时错误,因为p重复定义了。
追问
请问*p =a 和p=&a是一个意思吗?
追答
不是。
假设a的地址是2000,而a的值是100,即有[2000]=100;的话
则*p=a;后,p的值是100,p指向地址为100的内存。而p=&a;后,p的值是2000,p指向地址为2000的内存,即p指向了a。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询