有没有大佬解释一下

Legends_Never_Die 2019-03-09 03:15:23
以前写过不少代码,感觉学编程挺有意思。 最近钻了牛角尖,比如看到一行简单的赋值语句 a=2; 我以前没有想多 意思就是把2赋给a; 忽然有一天问自己什么(谁)把2赋a; 类似这种,求道友指点,感激不尽
...全文
148 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是CPU,你这段a=2;的代码最终会被翻译成一串二进制数并存入外存,当这段程序运行的时候,就把这串二进制数放入内存,CPU就执行a=2这个语句,随后会在内存中分配一个空间并取名为a,接下来CPU把这段内存填充为2
@风轻云淡_ 2019-03-10
  • 打赏
  • 举报
回复
这种态度很好,多问问为什么,往往会有意外收获。其实我是这么理解的,并不是说谁把2赋给了a,而是说编程的人或者cpu告诉了a,你现在应该等于2,它就在自己的物理地址上写上了一些符号,于是,它就暂时的等于2了,等下一次你告诉它需要改变的时候,它在自己改变。
Legends_Never_Die 2019-03-10
  • 打赏
  • 举报
回复
嗯,我知道这个 但是编程是不是也得从程序员的角度来思考问题 比如我看到一段代码a=1; 可不可以理解为是写这段代码的人把1赋给了a
六道佩恩 2019-03-09
  • 打赏
  • 举报
回复
从内存来看,变量a在内存上有几个字节的空间,a=2就是把2放进这几个字节空间。 从机器码来看,打个比方,a=2被翻译成了010111011011000000010(随便举例的,不要去和实际的机器码对应),0101表示把一个数放进某个内存空间,110110110就是a的内存空间,00000010就是整数2,CPU翻译这个机器码的时候,就会把整数2送进110110110这个地址空间。 如果是a=b这种,就是在内存空间取值去赋给另一块空间。

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧