1、标示符必须以字母或下划线开头,不能以数字开头。
2、int a=7和int a=07 不同,前者是十进制,后者是8进制。
3、double a=b=99.99;//非法,同一定义语句中不同变量的初始化应该分别进行。
4、内置数据类型的变量在函数体外定义初始化为0,在函数体内定义不初始化。
5、只有当extern 声明位于函数外部时,才可以含有初始化式。
extern std::string name("abc");一定是在函数体外,作全局变量。
6、const常量必须初始化。
7、非const变量:
//file1.c
int count;
//file2.c
extern int count;
++count;
8、const变量:在全局作用域声明的const的变量是定义该对象的文件的局部变量。此变量只存在于那个文件中,不能被其他文件访问。
通过指定const 变量为extern ,就可以在整个程序中访问const 对象:
//file1.c
extern const int bufSize=123;
//file2.c
extern const int bufSize;
for(int i=0;i<bufSize;i++)……
9、引用必须用与该引用同类型的对象初始化,但是唯独const引用可以初始化右值。
int &refva1;//error:a reference must be initialized
int &refva2=10;//error:initializer must be an object
const int &refva3=123;//right
const int ival=1;
const int &refva4=ival;
const 引用是对const 的引用。
10、定义类时,通常先定义该类的接口,即该类所提供的操作。通过这些操作,可以决定该类完成其功能所需要的数据,以及是否需要定义一些函数来支持该类的实现。
11、编程新手经常会忘记类定义后面的分号,这是个很普遍的错误。
12、用class 和struct 关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class 的成员为private.
13、头文件中不能包含变量和函数的定义,但是const 对象和inline函数可以定义。
extern int ival=10;//定义
double fica;//定义,因为没有extern
如果const变量不是用常量表达式初始化,那么他就不应该在头文件中定义。相反,和其他的变量一样,该const变量应该在一个源文件中定义并初始化。应在头文件中为它添加extern声明,以使其能被多个文件共享。
14、头文件保护符:防止头文件被多次重复包含
#ifndef SHA
#define SHA
头文件的实体内容
#endif
15、在头文件必须总是使用完全限定的标准库名字,即不能使用using namespace std
16、从标准库输入读取string :读取并忽略开头所有的空白字符,读取字符直至再次遇到空白字符,读取终止。
如果输入为“ Hello World ”,则存入的字符串为“Hello”
17、getline函数:getline(cin,str)从输入流读入数据到str,但不包括换行符,可以包括空白字符,这与cin>>str不同。getline会丢弃最后的换行符,因此cout<<str时需要自己添加endl;
18、
#include <iostream>
#include <string>
using namespace std;
int main()
{
string word;
while(cin>>word)
cout<<word;
system("pause");
return 0;
}
string对象在内存里的数据为"1\0" "2\0" "3\0"
string.size()不将'\0'字符计算在内。
19、string.size()的返回值是string::size_type类型,任何存储string的size操作结果的变量必须为string::size_type类型。特别重要的是,不要把size的返回值赋给一个int变量。
20、+连接操作符左右必须有一个string类型,不能全部是字面值。
21、cctype头文件里的函数可以判断一个字符是字母、数字、空白字符、标点符号等
22、
转载于:https://blog.51cto.com/onthecloud/1619099