本文共 1496 字,大约阅读时间需要 4 分钟。
C语言与C++语言学习笔记
全局变量可以在可被多个组成部分包含的头文件中定义,这一特性在编程时非常有用。它能够保证变量在各个模块之间保持一致。
以下程序输出会经历多次fork()操作,导致缓冲区内容被复制多次:
int i;for (i = 0; i < 2; i++) { fork(); printf("-");}
这个程序会执行6次printf调用,但只有2次实际输出。因为父进程的输出缓冲区会被子进程复制,导致多个进程同时writing到缓冲区,结果呈现以下情形:
最终的结果共出现了8个“-”符号。
C++中,静态成员属于整个类而非单个对象,具有如下特点:
静态成员的声明方式为static
,而常量通常由final
关键字声明,不可修改。
静态成员不具备多态性,无法通过多态实现。
以下内存分配函数是常用的:
free()
释放。内存分配类型:
在C++类体系中,不可被派生类继承的成员函数包括:
构造函数与派生类继承规则:
静态变量在程序执行周期内始终存在,使其在多个函数中使用成为可能。
抽象类由于无可实例化对象而成为基类,主要用途有:
特征:
在C++中,不同转换类型的地位有所不同:
C语言中的整数默认为二进制格式,例如:
int i = 1; // 二进制:1static int mask = (~0) << 1; // 十进制:2
十六进制表示需使用0x
前缀。
多线程环境中的i++操作并不绝对原子性,因为内存操作分解为多个步骤:
因此在并发执行下,正确读取和写入顺序至关重要。如上文所述,最终i值可达最大值200和最小值2。
转载地址:http://hjcgz.baihongyu.com/