为了账号安全,请及时绑定邮箱和手机立即绑定

C语言变量赋值

C语言变量赋值

C
临摹微笑 2018-08-10 17:06:22
比如如下代码:#include <stdio.h>int main(){    int a, b;     a = 10;     b = a; }看网上说,b = a 是把a变量内存空间中的数据复制到b变量的内存空间中,是这样的吗?难道a和b的数据完全一样,也占两份内存空间吗?没有写时拷贝、a和b共用同一内存地址的说法吗?刚学C,不太明白,谢谢诸位
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

main.c#include <stdio.h>int main()
{
    int a, b;    a = 10;
    b = a;
    printf( "addr: 0x%08x\n", &a);
    printf( "addr: 0x%08x\n", &b);    printf( "size: %zd\n", sizeof(a));}
[xxx@xxx]# ./a.outaddr: 0x68a28bccaddr: 0x68a28bc8size: 4

两个地址相差四个字节,显然不在同一个地址


查看完整回答
反对 回复 2018-08-12
?
湖上湖

TA贡献2003条经验 获得超2个赞

因为C是静态类型的语言,因此两个不同变量就是位于两个不同内存地址的,即使内容完全一样。请注意,是“变量”!

查看完整回答
反对 回复 2018-08-12
  • 2 回答
  • 0 关注
  • 900 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信