标签:
1.声明和定义
声明是相编译器介绍名字-标识符,它告诉编译器“这个变量或函数在某处可以找到,它的模样”。而定义是说:“在这里建立变量”或“这里建立函数”,为变量和函数分配存储的空间。
2.语言的翻译
任何计算机语言都要从某种人们容易理解的形式(源程序)转换成为机器理解和执行的形式(机器指令),编译器和解释器是两种翻译工具。
3.链接的顺序
因为链接器按照顺序查找文件,所以,如果用户自定义与库函数相同名称的函数,把带有这个函数的文件插入到库函数文件名列表之前,就能使用自定义的函数替代库函数。这有可能是个bug,C++名字空间禁止这样。当创建一个C/C++可执行程序时,链接器会秘密的链家某些模块。其中之一就是启动模块,它包含了对程序初始化的例程,初始化例程是C/C++程序执行时必须首先执行的程序,它主要建立堆栈并初始化程序中的某些变量。
标准库中只需要添加头文件就行,应为库文件总是能找到的。如果使用附件的库文件,则必须把对应的文件添加都链接器的查找文件列表中。
4.整个C的库默认的包含在C++标准库中。
5.iostream类可以从文件、标准的输入输出设备(通常指控制台,但也可重定向到文件和设备)读取和写入数据。
6.操作符重载,<<和cout对象在一起就是“发送到”,和整数在一起就是“左移”。
7.名字空间 C语言的所有函数和变量名都在同一个空间里,大的工程,几个人共同开发是,命名得非常小心。C++通过namespace关键字解决了这个问题,所有的C++标准库的名字都分装在同一个空间std中。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1.wchar_t和char16_t、char32_t区别:后两个是最新的标准添加。
#include <iostream> int main() { wchar_t ch = ‘高‘; //宽字符 char16_t和char32_t是C11新添,本机不支持 std::cout << ch << std::endl; return 0; }
2.Hello world!
#include <iostream> using namespace std; //作用域? int main() { cout<<"Hello World!I am " <<8<<"Today!"<<endl; return 0; }
E:\myDocuments\GUN\C++>g++ Demo.cpp -o Demo.exe
E:\myDocuments\GUN\C++>Demo.exe
Hello World!I am 8Today!
E:\myDocuments\GUN\C++>
3.输入输出流:对于数据输出有多重格式
#include <iostream> using namespace std; //作用域? int main() { cout<<"A number in decimal " <<dec<<15<<endl; //十进制 dec<<15 cout<<"A number in octical " <<oct<<0x0F<<endl; //八进制 oct<<15 cout<<"A number in hexadecimal " <<hex<<15<<endl; //十六进制 hex<<15 cout<<"A float number " <<3.14159268<<endl; //多少精度? cout<<"Non-printing char(escape) " <<char(0x1B)<<endl; int number; cout<<"Enter a number "<<endl; cin >> number; //默认输入的为十进制 cout<<"value in octical = 0" <<oct<<number<<endl; cout<<"value in hexadecical = 0x" <<hex<<number<<endl; return 0; }
E:\myDocuments\GUN\C++>Demo.exe
A number in decimal 15
A number in octical 17
A number in hexadecimal f
A float number 3.14159
Non-printing char(escape)
Enter a number
15
value in octical = 017
value in hexadecical = 0xf
E:\myDocuments\GUN\C++>
4.调用其他程序:标准C语言的system()函数,C/C++可以调用任何程序,system()在头文件cstdlib(从原来的stdlib而来)。
#include <cstdlib> using namespace std; //作用域? int main() { // system("Hello"); /*E:\myDocuments\GUN\C++>Demo.exe ‘Hello‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 E:\myDocuments\GUN\C++> */ /* 功 能: 发出一个DOS命令 用 法: int system(char *command); */ system("dir"); return 0; } /* 输出:结果和直接在命令行下面输入一个dir(列出当前目的下文件)一样的效果 E:\myDocuments\GUN\C++>g++ Demo.cpp -o Demo.exe E:\myDocuments\GUN\C++>Demo.exe 驱动器 E 中的卷是 DATA 卷的序列号是 EC10-1C79 E:\myDocuments\GUN\C++ 的目录 2015-08-25 11:21 <DIR> . 2015-08-25 11:21 <DIR> .. 2015-08-25 10:41 496,719 a.exe 2015-08-25 11:21 341 Demo.cpp 2015-08-25 11:21 15,883 Demo.exe 2015-08-21 09:52 111 GUN.bat 4 个文件 513,054 字节 2 个目录 81,164,349,440 可用字节 E:\myDocuments\GUN\C++>dir --------直接输出dir命令 驱动器 E 中的卷是 DATA 卷的序列号是 EC10-1C79 E:\myDocuments\GUN\C++ 的目录 2015-08-25 11:22 <DIR> . 2015-08-25 11:22 <DIR> .. 2015-08-25 11:21 341 Demo.cpp 2015-08-25 11:21 15,883 Demo.exe 2015-08-21 09:52 111 GUN.bat 3 个文件 16,335 字节 2 个目录 81,164,349,440 可用字节 E:\myDocuments\GUN\C++> */
标签:
原文地址:http://www.cnblogs.com/hinice/p/4756977.html