【笔记】21天学通C++(第六版)_笔记二
------------------------------------------------
一切都是为了梦想..
5483-3=5480
------------------------------------------------
第4章 管理数组和字符串
1.数组索引从0而不是1开始。
int myArray[10] = {0};
myArray[0]的偏移量为零,是第一个元素。
2.使用常量指定数组长度,这样只需修改一个地方就可以修改所有值。
//Dimensioning arrays with consts and enumerations
#include <iostream>
int main()
{
enum WeekDays {
Sun, Mon, Tue, Wed, Thu, Fri, Sat, DaysInWeek
};
int ArrayWeek[DaysInWeek] = {10, 20, 30, 40, 50, 60, 70};
std::cout << "The value at Tuesday is: " << ArrayWeek[Tue];//30
return 0;
}
3.动态数组std::vector和std::deque以后会讲。它们提供了动态数组的泛型实现,可满足大部分需求并解决大部分地址问题,如内存管理、复制等。
4.
//填充数组
#include <iostream>
int main()
{
char buffer[80] = {'\0'};
std::cout << "Enter the string:";
std::cin >> buffer;
std::cout << buffer << std::endl;
return 0;
}
Enter the string:Hello World
Hello
如果用户输入的字符多于79个,cin将在超出缓冲区末尾的地方写入;其次,如果用户输入了空格,cin将认为是字符串的结尾,从而停止向缓冲区写入。
为了解决这些问题,可以用cin.get()这个方法接受三个参数:
待填充的缓冲区;
要读取的最大字符数;
终止输入的限定符。
#include <iostream>
using namespace std;
int main()
{
char buffer[80] = { '\0'};
cin.get(buffer, 79);
cout << buffer << endl;
return 0;
}
如果输入了空格、制表符或其他空白字符,他们将被赋给字符串。换行符结束输入。输入79个字符后,也将结束输入。
------------------------------------------
5.
strcpy()/strncpy()在string.h中声明。
------------------------------------------
6.数组是大小固定的相同类型的对象集合。
数组不执行边界检查,因此在超出数组末尾的地方进行读写是合法的,虽然其后果是灾难性的。数组索引从0开始。一种常见的错误是,将下标n用于包含n个元素的数组。
------------------------------------------
7.诸如std::vector等动态数组类有何优点?
优点在于使用动态数组时,程序猿无需在编译阶段知道数组需包含多少个元素。动态数组可根据应用程序的需求动态调整其长度;另外,这些类提供的实用函数也很有吸引力。
------------------------------------------
第5章 使用表达式、语句和运算符
#include <iostream>
using namespace std;
int main()
{
int a = 2, b = 2, c;
if (c = (a - b)) {
cout << "the value of c is : " << c << endl;
}
return 0;
}
//a-b为0,0为false,if条件不满足,不打印任何内容
------------------------------------------