栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++琐碎知识整理

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++琐碎知识整理

C++琐碎知识整理 二

1.C++与C一样,用终止符(terminator)将两条语句分开,终止符是一个分号,它是语句的结束标记,是语句的组成部分,而不是语句之间的标记,所以C++语句一定不能省略分号。

2.通常,main()被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁,该函数头描述的是main()和操作系统之间的接口。

3.在C语言中,省略返回类型相当于说类型是int,但在C++中淘汰了这种用法。main()函数返回类型是void的不是当前标准强制的一个选项,因此在有些系统上不能工作,应该避免这种格式。

4.如果编译器到达main()函数结尾时没有遇到返回语句,则认为结尾有return 0; 只适用于main()函数

可以看到普通的要求要返回的函数没有return的情况会有警告,但不会报错,而main函数可以没有return

5.C++风格的注释是两个正斜杠// ,而C风格的注释是 * * ,现在C++标准也在C语言中加了//注释

6.预处理器操作:在源代码被编译之前,替换或添加文本,#include这一行就是把iostream文件的内容替换这一行,因为这是一个预处理指令,并不是一个C++语句,所以不用分号作为结束。

7.C语言中头文件扩展名用.h,C++保留了这种用法。C++风格的头文件没有扩展名,有一些在C的基础上去掉.h,有些加上前缀c,表示来自C语言,比如 math.h -> cmath .

8.在C++中,没有.h的头文件可以包含名称空间,有.h就不行,例如

使用 iostream.h 和 cout 或者 使用iostream 和 std::cout

(我用iostream.h 和 cout 会报错,显示找不到iostream.h )

9.使用using编译指令使得名称空间的所有名称都可用,这是一种偷懒的做法,在大型项目中这是一个潜在的问题。最好是只使需要的名称可用。比如using std::cin;,对于简单程序来说无关紧要。

10.cout和cin都是一个预定义对象,可以智能识别并处理信息。

11.插入运算符<<将右侧的信息插入到流中,这是一个运算符重载的例子,<<也可表示位运算的左移运算符,编译器通过上下文来确定运算符的含义。

12.C语言本身也有一些运算符重载的情况,比如&表示取地址运算符,也可以表示按位与,*表示乘法,也表示间址访问。但是C语言不能用户自定义函数重载。

13.在C++中输出时另起一行用endl控制符,比如cout<

14.一行代码中不可分割的元素叫做标记(token),通常必须用空格,制表符或回车将两个标记分开。空格,制表符和回车统称为空白(white space).

15.声明语句:

int a;

这条语句提供了两项信息:1.需要的内存 2.该内存单元的名称。指出该程序需要足够的大小空间来存储一个整数,大小取决于实现。指出程序将使用a来标识存储在该内存单元中的值。

16.在C++中所有变量都必须声明,否则当使用时编译器将报错。

17.定义:程序中的声明语句叫做定义声明(defining declaration)语句,简称定义。声明不一定是定义。

18.在C中变量的声明都必须放在函数刚开始的位置,但C++中只要保证在声明后使用,且在同一个作用域里就行了。

19.C++和C有一项不寻常的特性–可以连续使用赋值运算符。

a=b=1;

从右向左进行,1被赋给b,b再赋给a

20.C++程序必须为程序中每个函数提供原型。函数原型只描述函数接口,描述的是发送给函数的信息和返回的信息。函数定义中包含了函数的编译代码。库文件包含了函数的编译代码,头文件包含了函数原型。

21.在创建变量时对它赋值,这个过程叫做初始化(initialization).

int a=1;

22.在有些语言中,又返回值的函数称为函数(function),没有返回值的函数称为过程(procedure)或子程序(subroutine)。但在C和C++中都称为函数。

23.C++不允许将函数定义嵌套在另一个函数定义里,每个函数定义都是独立的,所有函数的创建都是平等的。

23.可以认为,main()函数被操作系统调用,返回值通常也被叫做退出值,为0意味着程序运行成功,非0则意味着出现问题。

24.main不是关键字,但它是一个必不可少的函数名称,可以把main用作变量名,但有些时候会出错,因此最好不要这样做。

25.让程序能够访问名称空间std的方法有很多种,下面是常见的四种。

①将using namespace std;放到函数定义前面。

②将using namespace std;放到函数定义里,这样函数里就可以用std的函数了。

③用using std::cout这样的编译指令。

④完全不使用using,而在需要使用std中的元素的时候使用前缀std::


由图可知,这里的using作用域在main函数里

三

1.C++对于名称的长度没有限制,但有些平台有长度限制。与C(C99标准)不同的是,后者只保留名称中的前63个字符有意义。

2.C++确保了数据类型的最小长度,short至少是16位,int至少与short一样,long至少32位且至少与int一样,long long至少64位,且至少与long一样。

3.在美国基本字符集通常是ASCII和EBCDIC字符集,在使用这两种字符集的系统中,C++字节通常包含8位,而有些系统用更大的字符集,比如Unicode,因此有些实现有可能用16位或32位的字节。

4.对类型名用sizeof运算符时应将名称放在括号中,但对变量名使用sizeof时括号是可选的。

5.C++有一种C语言没有的初始化语法:

int a(123);

6.如果不对函数内部定义的变量初始化,该变量的值是不确定是,这意味着该变量的值是它被创建之前,相应内存单元保存的值。所以在声明变量时对它初始化,可避免以后忘记给他赋值的情况发生。

7.C++11中可以用统一的初始化方式:

int a={123};

等号也可以不用

int b{456};

大括号里也可以不包含任何东西,这时变量将被初始化为0

int c={};

int d{};

这有助于防范类型转换错误,是一种通用的初始化语法。

8.整形字面值是显示地书写的常量,C++用前一两位标识数字常量的基数。如果第一位位1-9则基数位10,如果第一位是0,第二位是1-7则基数为8,如果前两位为0x或0X则基数是16。默认情况下cout以十进制格式现实整数。


由图可知,实际上只要第一位是0,第二位是0-7,就会被当成是8进制。

9.char类型是另一种整型,虽然它最长用来处理字符,但也可以将它用做比short更小的整型。

10.当输入字符M时,cin将键盘输入的M转换成77,输出时,cout将值77转换成所显示的字符M,也就是说内存里存的其实是77这个数字,当输出时cout会自动识别到char类型,并输出77对应的字符。

11.通用字符名。用法类似转义字符,以u或U打头,u后面是4个十六进制位,U后面是8个十六进制位。表示字符的ISO 10646码点。

12.char也可以有符号和无符号,signed char范围从-128-127,unsigned char 范围从0-255

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1001851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号