《C语言程序设计现代方法》阅读笔记——第二章 C语言基本概念

2.4.5 初始化

        当程序开始执行时,某些变量会被自动设置为零,而大多数变量则不会(18.5节)。没有默认值并且尚未在程序中被赋值的变量是未初始化的(uninitialized)。


警告:如果试图访问未初始化的变量(例如,用 printf 显示变量的值,或者在表达式中使用该变量),可能会得到不可预知的结果,如 2568、-30 891或者其他同样没有意义的数值。在某些编译器中,可能会发生更坏的情况(甚至是程序崩溃 )。


        我们当然可以总是采用复制的方法给变量赋初始值,但还有更简单的方法:在变量声明中加入初始值。例如,可以在一步操作中声明变量height并同时将其初始化:

        int height = 8; 


问:在某些C语言书中,main函数的结尾使用的是exit(0)而不知return 0,二者是否一样呢?(p.10)

答:当出现在main函数中时,这两种语句是完全等价的:二者都终止程序执行,并且向操作系统返回0值。使用哪种语句完全一句个人喜好而定。


问:编译器是完全移除注释还是用空格替换注释呢?

答:一些早期的编译器回删除每条注释中的所有字符,使得语句

        a/**/b = 0;

        可能被编译器理解成

        ab = 0;

        然而,根据C标准,编译器必须用一个空格字符替换每条注释语句,因此上面提到的技巧并不可行。我们实际上会得到下面的语句:

        a b = 0;

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值