开发者社区> 问答> 正文

指针变量签名加*号和不加*号的区别?

指针变量签名加号和不加号的区别?

展开
收起
游客py5kcp7dd6tu6 2022-03-29 00:10:40 1336 0
1 条回答
写回答
取消 提交回答
  • 本问题用基本数据类型来说明。

    这是很多人经常会搞混的问题。按照一般的说法,指针变量前面不加号,输出的是指针变量自己的数值,前面加号,输出的是另外一个数值,这个数值的地址就是指针变量自己的值。很晕是不是?看下面的代码:

    #include <stdio.h>

    int main(void) { int a = 1; int *p = &a;

    printf("指针变量p前面加*,也就是*p的值是%d\n", *p);
    printf("指针变量p前面不加*,也就是p的值是%d\n", p);
    
    return 0;
    

    }

    运行的结果是:

    image.png

    从结果中可以看出以下2点:

    1). 指针变量p前面不加*号,p输出的值是1244996,这个是变量p自己的值,也是整型变量a的地址;

    2). 指针变量p前面加*号,*p输出的是1,也就是变量a的值;

    *p和p的区别应该清楚了吧。

    2022-03-29 00:11:51
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载