C语言 为什么%d输出指针不会报错?而是输出地址?
答案:3 悬赏:0
解决时间 2021-01-08 22:34
- 提问者网友:寂寞梧桐
- 2021-01-08 04:45
C语言 为什么%d输出指针不会报错?而是输出地址?
最佳答案
- 二级知识专家网友:像个废品
- 2021-01-08 05:33
为什么%d输出指针不会报错 ==》指针本身是一个表示地址的变量,所以可以用%d输出
为什么p、p1的值和其他的地址值不一样??? ===》因为你的p 和 p1没有初始化,你定义之后就没有用过这两个变量,所以这两个变量是随机值。
为什么p、p1的值和其他的地址值不一样??? ===》因为你的p 和 p1没有初始化,你定义之后就没有用过这两个变量,所以这两个变量是随机值。
全部回答
- 1楼网友:舊物识亽
- 2021-01-08 08:07
%d就是十进制输出,地址本来就是一个整数。
- 2楼网友:千夜
- 2021-01-08 06:55
首先,要分清楚指针自己的值和指针自己的地址。指针的值是指向的空间的地址,例如
pa=&a;
pa的值是a的地址。
而pa自己也是一个指针变量。是有存储空间的。&pa是求的自己存储空间的地址。
//-----------------------
在整个程序中,没有对p和p1进行任何初始化和赋值,也就是说,这两个指针没有具体说明它指向谁(称为野指针),因此这个结果值是随机的。
而&pa,&pb,&p2都是求这几个指针自己的空间地址。因为都是变量。因此一定有值。
更多C编程及技术文章可以关注我的微博,名字:成都睿尔科技 。追问%d输出指针不是会报错吗?为什么没有报错呢?
pa=&a;
pa的值是a的地址。
而pa自己也是一个指针变量。是有存储空间的。&pa是求的自己存储空间的地址。
//-----------------------
在整个程序中,没有对p和p1进行任何初始化和赋值,也就是说,这两个指针没有具体说明它指向谁(称为野指针),因此这个结果值是随机的。
而&pa,&pb,&p2都是求这几个指针自己的空间地址。因为都是变量。因此一定有值。
更多C编程及技术文章可以关注我的微博,名字:成都睿尔科技 。追问%d输出指针不是会报错吗?为什么没有报错呢?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯