Akuridinpo 2022-09-22 15:41 采纳率: 100%
浏览 43
已结题

C语言中关于int *p = &i; 语句的疑惑

初学指针,明白了&运算符是取地址,而*运算符是取地址中的实际值。

那为什么可以使用int *p = &i; 这样把地址赋给实际值的操作?

int i = 10; 
int *p;
p = &i;
printf("%d", *p);

int i = 10;
int *p = &i;
printf("%d", *p);

所得*p的值是一样的,这又是什么原因?

  • 写回答

4条回答 默认 最新

  • 於黾 2022-09-22 16:14
    关注

    都没有说到点上
    * 这个东西含义非常多
    在四则混合运算中它是乘号,在*p里它代表"解地址",而int *里它是类型的一部分,代表定义一个一级指针,int **则是二级指针,以此类推
    此外,在正则表达式中*还代表匹配任意多个前导字符
    你不要一见到*就以为是解地址操作

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月22日
  • 已采纳回答 9月22日
  • 创建了问题 9月22日