在没接触地址这个概念之前 我以为赋值就是a=1 把1赋给a
疑点一:我个人理解是一个整形变量 没赋值之前只有地址 没有值 现在我把他赋值
int a ;
a=1;
好了现在a有了一个地址还有一个为1的值(望大神指点我理解和思路上的错误)
疑点二:指针变量:
我的理解是里面只能装地址 不能装像1这样的整数(我的理解源于图中红线所示)
疑点三:我是否可以这样理解
例如 2021是某一变量的地址,2008就是变量的指针。
我理解为2008=地址=指针(水),指针变量(水杯) 指针变量用来存放地址的变量。
疑点四: 我阅读下列程序是否有错误
例如:
int a,*pa=&a,*pb;
pb=pa; /*把a的地址赋予指针变量pb*/
首先声明一个整形变量a,将整形变量a的地址赋值给指针变量pa,声明指向整形数据的指针变量pb
由于pb pa 都是int型指针变量 所以pb=pa 可以进行赋值,把pa中存的a的地址,赋值给pb
望大神能准确的!告诉我 每个疑点理解错的地方
一针见血最好,模棱两可的回答 我这个笨比看不懂
哪错了 哪理解错了 这样子我比较喜欢 谢谢
初学c语言不到一个月 思路和理解对我很重要 为了备考暂时停留在刷题阶段 实操为0
疑点1:没赋值之前,也是有值的。只不过是一个随机值或者说是上一个程序写进入的(因为内存是分配的,也就是说,资源是一定的,所以同一块地址可能有很多人在用,但是不一定是同时)。
疑点2:这个理解是错的,在内存中或者说计算机存储的本质上都会 0 和 1,但是这些 0 和 1 的组合代表的内容不同的情况下可能不一样。比如同样的 0 1 0 0 0 1 2.....,把它当作是文本的话,可能是一篇文章。如果是当作图片的话,可能也是一幅美丽的画。那么指针变量里面存什么其实都是可以的,关键的是在读取的时候,里面会被认为是一个地址,如果你存的是 1 的话,那么就会去操作 1 这个地址。但是实际上由于物理机器和操作系统的限制这是不行的,因为这样不安全。但是你要是存储一个合法的数字或者说就是一个合法的地址(其实也是数字),那么就没问题。
疑点3:其实指针和值的关系是相对的,当然了这里没有说你错了,当然了也不能说完全对。只是想让你印象更深刻一点,它们的关系不能用水和水杯来做比喻,这个比喻没有那么恰当,因为你不会用水杯来装水杯吧。其实可以理解为更通用的盒子,因为指针变量可以用另一个指针变量来"存储"的。
疑点4:没啥问题。
疑问1:赋值了有值,没有赋值也有值,没有赋值之前保存的是这块地址以前存储的值,不确定是什么内容,所以不是我们想要的。
疑问2:p=&a,相当于给a取了一个别名,因为a,b是同一个地址,取到的是同一个值。
疑问3:指针指的就是地址
疑问4:你的理解是对的。
变量有2个基本概念,地址和值,比如把变量地址比喻为你的宿舍门牌号,变量的值就是宿舍里面的东西,房间号是一直存在的,但里面的东西可以随时改变
您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y