【2017年整理】C 变量初始化

上传人:豆浆 文档编号:987639 上传时间:2017-05-24 格式:DOC 页数:2 大小:24KB
返回 下载 相关 举报
【2017年整理】C  变量初始化_第1页
第1页 / 共2页
【2017年整理】C  变量初始化_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《【2017年整理】C 变量初始化》由会员分享,可在线阅读,更多相关《【2017年整理】C 变量初始化(2页珍藏版)》请在金锄头文库上搜索。

1、C 变量初始化前面我们多次提到过初始化的概念,不过始终没有详细讨论。本节将对前面讨论的各种存储类的初始化规则做一个总结。在不进行显式初始化的情况下,外部变量和静态变量都将被初始化为0,而自动变量和寄存器变量的初值则没有定义(即初值为无用的信息)。定义标量变量时,可以在变量名_后紧跟一个等号和一个表达式来初始化变量:int x = 1;char squota = ;long day = 1000L * 60L * 60L * 24L; /* milliseconds/day */对于外部变量与静态变量来说,初始化表达式必须是常量表达式,且只初始化一次(从概念上讲是在程序开始执行前进行初始化)。对

2、于自动变量与寄存器变量,则在每次进入函数或程序块时都将被初始化。对于自动变量与寄存器变量来说,初始化表达式可以不是常量表达式:表达式中可以包含任意在此表达式之前已经定义的值,包括函数调用,我们在3.3 节中介绍的折半查找程序的初始化可以采用下列形式:int binsearch(int x, int v, int n)int low = 0;int high = n - 1;int mid;.代替原来的形式:int low, high, mid;low = 0;high = n - 1;实际上,自动变量的初始化等效于简写的赋值语句。究竟采用哪一种形式,还得看个人的习惯。考虑到变量声明中的初始化表

3、达式容易被人忽略,且距使用的位置较远,我们一般使用显式的赋值语句。数组的初始化可以在声明的后面紧跟一个初始化表达式列表,初始化表达式列表用花括号括起来,各初始化表达式之间通过逗号分隔。例如,如果要用一年中各月的天数初始化数组days ,其变量的定义如下:int days = 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31;当省略数组的长度时,编译器将把花括号中初始化表达式的个数作为数组的长度,在本例中数组的长度为12。如果初始化表达式的个数比数组元索数少,则对外部变量、静态变量和自动变量来说,没有初始化表达式的元素将被初始化为0,如果初始化表达式的个数比数组元素数多,则是错误的。不能一次将一个初始化表达式指定给多个数组元素,也不能跳过前面的数组元素而直接初始化后面的数组元素。字符数组的初始化比较特殊:可以用一个字符串来代替用花括号括起来并用逗号分隔的初始化表达式序列。例如:char pattern = ould ;它同下面的声明是等价的:char pattern = o, u, l, d;这种情况下,数组的长度是 5(4 个字符加上一个字符串结束符0)。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号