自学C语言 书上有这样2句话感觉这两句话又点矛盾啊 那么*p=*a该怎么理解啊 是右边指针所指地址的值给左边
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/08/18 13:44:00
自学C语言
书上有这样2句话
![](http://img.wesiedu.com/upload/0/33/03301ca02038cf4da2d05249998245f5.jpg)
![](http://img.wesiedu.com/upload/6/3a/63a6929536667d6ba8bde3bb19939ed5.jpg)
感觉这两句话又点矛盾啊 那么*p=*a该怎么理解啊 是右边指针所指地址的值给左边指针所指的地址吗?
C语言中的值和址该怎么理解啊 通常a=100 是a的值100吗? 那么scanf("%d",&a);又该怎么理解
书上有这样2句话
![](http://img.wesiedu.com/upload/0/33/03301ca02038cf4da2d05249998245f5.jpg)
![](http://img.wesiedu.com/upload/6/3a/63a6929536667d6ba8bde3bb19939ed5.jpg)
感觉这两句话又点矛盾啊 那么*p=*a该怎么理解啊 是右边指针所指地址的值给左边指针所指的地址吗?
C语言中的值和址该怎么理解啊 通常a=100 是a的值100吗? 那么scanf("%d",&a);又该怎么理解
![自学C语言 书上有这样2句话感觉这两句话又点矛盾啊 那么*p=*a该怎么理解啊 是右边指针所指地址的值给左边](/uploads/image/z/4972585-49-5.jpg?t=%E8%87%AA%E5%AD%A6C%E8%AF%AD%E8%A8%80+%E4%B9%A6%E4%B8%8A%E6%9C%89%E8%BF%99%E6%A0%B72%E5%8F%A5%E8%AF%9D%E6%84%9F%E8%A7%89%E8%BF%99%E4%B8%A4%E5%8F%A5%E8%AF%9D%E5%8F%88%E7%82%B9%E7%9F%9B%E7%9B%BE%E5%95%8A+%E9%82%A3%E4%B9%88%2Ap%3D%2Aa%E8%AF%A5%E6%80%8E%E4%B9%88%E7%90%86%E8%A7%A3%E5%95%8A+%26nbsp%3B%E6%98%AF%E5%8F%B3%E8%BE%B9%E6%8C%87%E9%92%88%E6%89%80%E6%8C%87%E5%9C%B0%E5%9D%80%E7%9A%84%E5%80%BC%E7%BB%99%E5%B7%A6%E8%BE%B9)
首先,对你的自学表示尊敬!
其次,我大致说一下你这里涉及的一些问题.
你的书本或许描述不容易让读者理解,但我可以简单分析:
搞懂三个概念:地址,存储单元,存储单元的值.
一个微机系统,必备的一个部分就是存储器,它用于存储数据,存储器最小单元是一个字节,就像整数的间隔至少是1,而存储器存储数据也是要对号入座的,于是就给予存储器每个最小单元编号,不同微机系统,可能编号有所差距,但是,绝大多数是从0开始的.这个编号就是存储单元的地址.
存储器中由一个或多个字节共同组成,然后存储一堆数据,这个存储数据的几个物理器件就是存储单元.
对于一个指针变量,它存储的是编号,它所指向的就是存储单元,而存储单元存储的值就是存储单元的内容.
因此,你再仔细读读上边的话.
*p出现在左边.说的正是,这个时候是访问存储单元,不是访问值,因为你的操作会修改的是存储单元.
*p在右边,读取的是值,不是存储单元.
至于你的问题2,&a就是求a变量的存储地址编号,是个整数,如果按你说的方式输出,那自然无疑.
另外,介于更严谨的知识体系,我个人觉得,上述说法有不足之处,只是不是你的说的不理解的地方,比如*p出现在等号左边,在右边,其实看具体情况而定,这个可以更多讨论(QQ私信发送给你了).
如果满意这个回答:请采纳,并赞一个,谢谢.
其次,我大致说一下你这里涉及的一些问题.
你的书本或许描述不容易让读者理解,但我可以简单分析:
搞懂三个概念:地址,存储单元,存储单元的值.
一个微机系统,必备的一个部分就是存储器,它用于存储数据,存储器最小单元是一个字节,就像整数的间隔至少是1,而存储器存储数据也是要对号入座的,于是就给予存储器每个最小单元编号,不同微机系统,可能编号有所差距,但是,绝大多数是从0开始的.这个编号就是存储单元的地址.
存储器中由一个或多个字节共同组成,然后存储一堆数据,这个存储数据的几个物理器件就是存储单元.
对于一个指针变量,它存储的是编号,它所指向的就是存储单元,而存储单元存储的值就是存储单元的内容.
因此,你再仔细读读上边的话.
*p出现在左边.说的正是,这个时候是访问存储单元,不是访问值,因为你的操作会修改的是存储单元.
*p在右边,读取的是值,不是存储单元.
至于你的问题2,&a就是求a变量的存储地址编号,是个整数,如果按你说的方式输出,那自然无疑.
另外,介于更严谨的知识体系,我个人觉得,上述说法有不足之处,只是不是你的说的不理解的地方,比如*p出现在等号左边,在右边,其实看具体情况而定,这个可以更多讨论(QQ私信发送给你了).
如果满意这个回答:请采纳,并赞一个,谢谢.
自学C语言 书上有这样2句话感觉这两句话又点矛盾啊 那么*p=*a该怎么理解啊 是右边指针所指地址的值给左边
怎样理解“能赋给指针变量的唯一整数是地址这句话”
c语言中,定义一个指针 int*p.假定刚开始时候p所指向的地址相同.则指针p++和*(p++)的意义是否相同?
【C语言】请解释一下(*p)++的运算过程,p所指地址内容的值是多少?
C语言问题:int *p; int a[] = {1,2,3,4,5,6}; *++p += 1; 这句话怎么理解.麻烦
“矛盾是对立统一”这句话怎么理解?
C语言:传入两个字符串型指针,把其中一个指针所指向的地址空间中的内容复制到另一个指针所指向的地址空间
C语言数据结构丰富这句话怎么理解?说得具体点,最好能告诉我C语言有那些数据结构
新手C语言,这句话怎么理解?
C语言:若有定义 int *p,则表达式 p++ 的值就是 p 所指向的变量的地址值加1?
在C语言中,“不能将一个常量赋值给一个表达式”这句话该怎么理解
while(*p&&*p==‘*’) 这句话怎么理解啊