1.C++没有提供自动防止超出整型限制的功能,可以使用头文件climits来确定限制情况。
2.常量33L的类型为long,常量33的类型为int
3.要创建数组,可使用声明语句,数组声明应指出以下三点:1.存储在每个元素中的值得类型2.数组名3.数组中的元素数。在C++中可以通过修改简单变量的声明,添加中括号(其中包含元素数目)来完成数组声明。通用格式typeName arrayName[arraySize];
4.C++数组初始化
首先,初始化数组时,可省略等号double earnings[4]{1.2e4,1.6e4,1.1e4,1.7e4}
其次,可以不在大括号内放置任何东西,这将把所有元素设为零
第三,列表初始化禁止缩窄转换
5.C风格的字符串有一种特殊性质“以空字符结尾”。
将字符数组初始化为字符串的方法----只需使用一个用引号括起来的字符串即可,这种字符串被称为字符串常量或者字符串字面值。Char bird[11]=”Mr.Cheeps”;
用引号括起来的字符串隐式的包括结尾的空字符,因此不用显式的包括它。各种C++输入工具通过键盘输入,将字符串读入到char数组中时,将自动加上结尾的空字符。当然要确保数组足够大,能够存储字符串中所有字符包括空字符。
字符串常量(实用双引号)不能与字符常量(使用单引号)互换。
有时候字符串很长,无法放在一行。C++允许拼接字符串字面值,即将两个用引号括起来的字符串合并成一个。事实上,任何两个由空白(空格、制表符、换行符)分隔的字符串常量都将自动拼接成一个。拼接时不会在被连接的字符串之间添加空格,第二个字符串的第一个字符将紧跟在第一个字符串的最后一个字符(不考虑\0)后面。第一个字符串中\0字符将被第二个字符串的第一个字符取代。
cout << "i'd give my right arm to be"" a great violinist.\n" << endl;
cout << "i'd give my right arm to be a great violinist.\n" << endl;
cout << "i'd give my right arm"
"to be a great violent.\n" << endl;
数组中使用字符串
#include<iostream>;
#include<cstring>//for the strlen()function
int main() {
using namespace std;
const int size = 15;
char name1[size];
char name2[size] = "C++owboy";
cout << "howdy!i'm" << name2;
cout << " what's your name?\n";
cin >> name1;
cout << "well," << name1 << ",your name has";
cout << strlen(name1) << "letters and is stored\n";//strlen()返回的是存储在数组中的字符串长度,不是数组长度,只计算可见的字符,不把空字符计算在内
cout << "in an array of " << sizeof(name1) << " byte.\n";
cout << "your initial is" << name1[0] << " .\n";
name2[3] = '\0';//set to null character,这使得字符串在第3个字符后即结束
cout << "here are the first 3 characters of my name:";
cout << name2 << endl;
return 0;
}
字符串输入
#include<iostream>;
int main() {
using namespace std;
const int size = 20;
char name[size];
char dessert[size];
cout << "enter your name:\n";
cin >> name;
cout << "enter your favorite dessert:\n";
cin >> dessert;
cout << "i have some delicious " << dessert;
cout << " for you," << name << ".\n";
return 0;
}
这个程序运行结果显示cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,这意味着cin在获取字符数组输入时只读取一个单词。读取该单词后,cin将该字符串放到数组中,并自动在结尾添加空字符。这个例子的实际结果是cin吧lily作为第一个字符串,并把它放到name数组中。这把grace留在输入队列中。当cin在输入队列中搜索用户喜欢的甜点时,发现了grace,因此cin读取grace,并将它放在dessert数组中。
Getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾。要调用这种方法可以使用cin.getline().有两个参数,第一个是用来存储输入行的数组的名称,第二个参数是要读取的字符数。如果这个参数为20,则函数最多读取19个字符。余下的空间用于存储自动在结尾出添加的空字符。
#include<iostream>;
int main() {
using namespace std;
const int size = 20;
char name[size];
char dessert[size];
cout << "enter your name:\n";
cin.getline(name,size);
cout << "enter your favorite dessert:\n";
cin.getline(dessert,size);
cout << "i have some delicious " << dessert;
cout << " for you," << name << ".\n";
return 0;
}