搜索
查看: 1690|回复: 4
打印 上一主题 下一主题

最简单的问题,谁帮我解释一下

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-9 23:05:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我做35页题的时候,输入
int main()
{
        int a=1;
    int b=2;
    int c;
    printf("%d",c);
        system("pause");
        return 0;
}
就是c忘记了写c=a+b,为什么得到的是5651336?这个数字是什么意思,为什么不是默认的赋值为0?
沙发
发表于 2013-3-10 00:40:47 | 只看该作者
全局变量或者静态变量会自动初始化为0(当然,对于一个int而言)

这里的c是个局部变量,不会自动初始化,只指定了一片存储区域
它这时候的值就是这片内存残留的值
分配到的内存恰好是5651336这个值
板凳
发表于 2013-3-16 22:07:59 | 只看该作者
我来看看,学习学习,其实现在我还没搞明白。。。
地板
发表于 2013-3-18 11:04:37 | 只看该作者
相当于你没赋值它的话它会随机从内存分配中取一个值给c
5#
发表于 2013-4-19 00:06:45 | 只看该作者
如果没有赋初值,系统会认为是一个随机数.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表