V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NoBlinking
V2EX  ›  编程

C 语言新人遇到一点问题。

  •  
  •   NoBlinking · 2018-05-20 09:59:46 +08:00 · 3603 次点击
    这是一个创建于 2387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在赋值语句 a[10]=b[10]+2 中,如果 b[10]没有值会怎么样?

    在判断语句 c[10]==-48 中如果 c[10]没有值会返回 1 还是 0 ?

    谢谢!

    12 条回复    2019-08-14 17:47:20 +08:00
    mengyaoss77
        1
    mengyaoss77  
       2018-05-20 10:04:40 +08:00 via Android
    只要不是内存访问越界,取决于编译器,b 数组会有随机赋的初值或者是 0
    如果有错误还请楼下指正
    mengyaoss77
        2
    mengyaoss77  
       2018-05-20 10:05:59 +08:00 via Android
    这种问题自己敲两行代码试试就知道了,我现在没用电脑没法试。。
    moonmagian
        3
    moonmagian  
       2018-05-20 10:13:14 +08:00 via Android
    如果你说的没有值是指越界的话,他的值完全取决于编译器的处理方式...
    NoBlinking
        4
    NoBlinking  
    OP
       2018-05-20 10:19:02 +08:00
    @moonmagian 没有值指的是没赋初值,也没输入值
    NoBlinking
        5
    NoBlinking  
    OP
       2018-05-20 10:34:53 +08:00
    我试了一下,貌似我的编译器总会给他赋一个初值,要么 0,要么随机,但在不改程序的前提下,每个变量在每一次的执行里初值都是不变的。
    steveway
        6
    steveway  
       2018-05-20 10:38:24 +08:00 via Android
    取决于编译器 有时候总是 0 有时候莫名其妙数字 这些问题总是很玄学的
    pkookp8
        7
    pkookp8  
       2018-05-20 11:08:15 +08:00 via Android
    局部变量初值多少是一个未定义的行为,没必要纠结
    全局变量和静态变量,没记错是 0,但即使我没记错也不建议这么写。memset 和加一个={0}也不麻烦,还能少很多需要纠结的问题不是?
    zzj0311
        8
    zzj0311  
       2018-05-20 15:31:05 +08:00 via Android
    ub 一概回答不知道
    qiuyi116
        9
    qiuyi116  
       2018-05-20 16:08:20 +08:00 via iPhone
    未定义 具体情况未知 跟编译器实现有关
    BugRepairMan
        10
    BugRepairMan  
       2018-05-20 16:41:00 +08:00
    undefined behaviour
    0x11901
        11
    0x11901  
       2018-06-26 22:39:34 +08:00
    取决于你的数据类型和指针地址。
    gaokevin163
        12
    gaokevin163  
       2019-08-14 17:47:20 +08:00
    首先你不应该问它没有值怎么办,应该是问首先他存不存在,存在才能讨论有没有值的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 04:19 · PVG 12:19 · LAX 20:19 · JFK 23:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.