C语言变量赋值

比如如下代码:

#include <stdio.h>int main(){    int a, b;
    a = 10;
    b = a;
}

看网上说,b = a 是把a变量内存空间中的数据复制到b变量的内存空间中,是这样的吗?
难道a和b的数据完全一样,也占两份内存空间吗?
没有写时拷贝、a和b共用同一内存地址的说法吗?
刚学C,不太明白,谢谢诸位


临摹微笑
浏览 912回答 2
2回答

largeQ

main.c#include&nbsp;<stdio.h>int&nbsp;main() { &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;a,&nbsp;b;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;10; &nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;a; &nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;"addr:&nbsp;0x%08x\n",&nbsp;&a); &nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;"addr:&nbsp;0x%08x\n",&nbsp;&b);&nbsp;&nbsp;&nbsp;&nbsp;printf(&nbsp;"size:&nbsp;%zd\n",&nbsp;sizeof(a));} [xxx@xxx]#&nbsp;./a.outaddr:&nbsp;0x68a28bccaddr:&nbsp;0x68a28bc8size:&nbsp;4两个地址相差四个字节,显然不在同一个地址

湖上湖

因为C是静态类型的语言,因此两个不同变量就是位于两个不同内存地址的,即使内容完全一样。请注意,是“变量”!
打开App,查看更多内容
随时随地看视频慕课网APP