数组

编译器并不会检查数组下标是否有效,将值赋给不存在的元素,编译器并不会指出错误。

数组的初始化规则:
只有在定义数组时才能使用初始化,也不能将一个数组赋给另一个数组。
可以使用下标分别给数组中的元素赋值。
初始化数组时,提供的值可以少于数组的元素数目,编译器将其他的元素设置为0。
初始化数组时[]为空,编译器将计算元素的个数,例如:short things[]={2,5,3,8};编译器将使things数组包含4个元素。

C-风格字符串以空字符/0结尾。
char dog[5]={'b','a','e','u','x'};
如果使用cout显示上面的dog数组(非字符串),cout将打印出数组中的5个字母,并将随后的内存各个字节解释为要打印的字符打印输出,直到遇到空字符。

sizeof操作符指出整个数组的长度,但strlen()函数返回的是存储在数组中字符串的长度,且不计算空字符。

cin使用空白(空格、tab、换行符)来定字符串的界,意味着cin在获取字符数组时只读取一个单词,并自动在结尾添加空字符。
cin.getline(name,len);读取整行,通过回车键输入的换行符来确定输入结尾,但不保存换行符。若len=20,则函数最多读取19个字符,剩下的空间由空字符填充。
而cin.get(name,len)也是读取整行,但它将换行符保留在输入序列中。因此第二次调用get()函数时看到的第一个字符将是换行符,get()将不能跨过此换行符,但可以用不带参数的cin.get()读取换行符,将两个函数拼接起来,如:
cin.get(name,len).get();
get()和getline()的比较:
若使用getline将一行读入数组中,不知道是因为已经读取了整行还是数组已被填满而停止读取;若使用get()函数,只需查看下一个输入字符是不是换行符便可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值