比如
int i=2, *p=&i;
在c++中,p这个表达式的类型是int的引用即int &,而c中并没有引用这个概念,所以在c中p的类型是什么?难道是int?如果是这样的话太搞了吧
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
int i=2;
int p=&i; // ①int p和int *p都一样
其中后一句又等同于
int * p;
p = &i; //③
再加上一句代码方便说明:
*p = 23; //②此时i也等于23
①通过int p定义出来的是p而不是p,p的类型是指向int类型的指针(int *)。
②此处的是取值操作符,操作/取出p所指向的地址的值。这和①中定义用的完全是两个东西!不要混淆!
③C中&是取地址符,此句把i的地址赋给了p(而不是*p,把定义和初始化的操作分开就很容易看懂了)
并没有p是什么类型的说法,非要说的话,此处p是指向int类型数据的指针,那么p算是int类型吧。