关于C/C++的一些知识点整理 (9)

1.strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为'\0'的数组元素。 
而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。计算为'\0'的数组元素。

2. 0~9 的ASCII码值是48~57。 a~z 的ASCII码值是 97~122。 A~Z的ASCII码值 是 65~90。

3.C语言有编辑、编译、执行三大过程。
C语言在编译前由预处理器对预处理命令进行处理,编译时进行语法分析。
执行过程就是运行程序。

4.fseek函数:  int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针;

第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移;

第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR当前位置、 SEEK_END文件结尾 或 SEEK_SET文件开头

5.const char *p的意思是p指向的目标空间的内容不可变化,

char * const p的意思是指针p的值不可变,但它指向目标的值可变。

例如:const char ch = 'a';                            char* const p = &ch1;
            const char* p = &ch;                         p = &ch2; //这样是错的
            *p = 'b'; //这样是错的

(通俗的讲:const的右边如果靠近*,则*p不能改变,如果const的右边靠近p,则p不能改变)

扫描二维码关注公众号,回复: 2630144 查看本文章

6.

解析: 

7.死代码的含义是指永远不会被执行到的代码段,而不是直接抛弃被注释的代码。

   函数内联可以避免函数调用中压栈和退栈的开销。

   for循环的循环控制变量通常很适合调度到寄存器访问。

   强度削弱是指执行时间较短的指令等价的替代执行时间较长的指令。

8.“优先使用对象组合,而不是继承”是面向对象设计的第二原则。

组合也叫“对象持有”,就是在类中定义另一类型的成员,继承会破坏类的独立性,增加系统的复杂性,一般系统的继承层次不超过3层。组合拥有良好的扩展性,支持动态组合。

9.C++真正正式公布的标准就三个:
C++98、C++03、C++11
其中C++98是第一个正式C++标准,C++03是在C++98上面进行了小幅度的修订,C++11则是一次全面的大进化(之前称C++11C++0x)。

10.

解析:

A在vs编译器里面直接报错,主要是一个指针是不能乘以一个数的,没有这种重载;

C错是只能初始化一个int,int无论在64位还是32机器都是4个字节,64位和32位电脑中唯一有区别的就是指针所占的字节数。

11.int *s[8]; //定义一个指针数组,该数组中每个元素是一个指针,每个指针指向哪里就需要程序中后续再定义了。 

      int (*s)[8]; //定义一个数组指针,该指针指向含8个元素的一维数组(数组中每个元素是int型)。 

12.C++类体系中,不能被派生类继承的有构造函数、静态成员函数、赋值操作函数。

猜你喜欢

转载自blog.csdn.net/mmmmmmyy/article/details/81512062