开发者社区 问答 正文

在C中,int *p的*p是什么类型?

比如

int i=2, *p=&i;
在c++中,p这个表达式的类型是int的引用即int &,而c中并没有引用这个概念,所以在c中p的类型是什么?难道是int?如果是这样的话太搞了吧

展开
收起
a123456678 2016-06-08 16:11:02 2540 分享 版权
1 条回答
写回答
取消 提交回答
  • 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类型吧。

    2019-07-17 19:32:13
    赞同 展开评论
问答分类:
C++
问答地址: