不知为何,用习惯了C#之后,回头看C++真是有点惨不忍睹,当然还是各有所长!
1.尊重标准
main函数标准用法:int main{};
其变体 int main{void}; void main{}; main{}虽然在大部分情况下也适用,但应尽量遵从C++的标准风格!
1.1 C++头文件风格
1.2 endl与"\n"的区别
\n 只代表换行的转义字符
endl 除了代表换行,还紧跟着刷新缓冲区
注意:对于声明变量,C++的做法是尽可能在首次使用变量前声明它!
1.3 关于赋值
1.4 命名空间
- 将using namespace std; 放在函数定义之前,让文件中所有函数都能使用名称空间std的所有元素。
- 将using namespace std;放在特定的函数定义中,让该函数能够使用命名空间下的所有元素。
- 在特定的函数中使用using std::cout; 这样的编译指令,让该函数可以使用指定的元素cout;
- 不使用using 指令,使用前缀std::; 如 std::cout,区别于C#和Java;
1.5 C++的初始化方式
1.6 cout的一些高级用法
1.7 const限定符
- const限定符用来声明一个常量,类似于C中的#define
- 常量名首字母通常大写,用来区分变量(当然也有一些其它的书写方式)。
- 应在声明的同时对const进行初始化,否则该常量的值将是不确定的,并不能修改!(编译也通不过)
1.8 强制转换
1.9 声明和定义的区别
①变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
②变量声明:用于向程序表明变量的类型和名字。
③定义也是声明:当定义变量时我们声明了它的类型和名字。
④extern关键字:通过使用extern关键字声明变量名而不定义它。
我们来看一看实际的例子!
1.定义也是声明,extern声明不是定义,即不分配存储空间。extern告诉编译器变量在其他地方定义了。
例如:extern int i; //声明,不是定义
int i; //声明,也是定义
2.如果声明时进行了初始化,就被当作定义,即使前面加了extern。只有当extern声明位于函数外部时,才可以被初始化。
例如:extern double pi=3.1416; //定义
3.函数的声明和定义区别比较简单,带有{ }的就是定义,否则就是声明。
例如:extern double max(double d1,double d2); //声明
4.除非有extern关键字,否则都是变量的定义。
例如:extern int i; //声明
int i; //定义