1.C语言本身是没有输入输出语句的
2.函数是构成C语言的基本单位
3.运算符优先级和结合性
单目运算符(第二行)和条件运算符(?:)和赋值运算符(= /= *= %=)的结合性是从右向左,其他都是从左向右
4.定义一个输出文件流对象,并打开d盘du文件夹下的 abc.dat 文件的代码为ofstream fout; fout.open(“d:\du\abc.dat”);两个\是因为转义字符
5.C++线程安全
1.局部变量局部使用是安全的,为什么?
因为每个线程(thread)都有自己的运行堆栈,而局部变量是生存在堆栈中,大家不干扰
2.全局变量多线程读写是不安全的 , 全局变量是在全局(静态)区中
3.函数静态变量多线程读写也是不安全的
4.易变(volatile)能保证全局整形变量是多线程安全的么?
不能。 易变(volatile)仅仅是告诫编译器(compiler)不要对这个变量作优化,每次都要从内存(memory)取数值,而不是从寄存器(register)
5.InterlockedIncrement保证整型变量自增的原子性
写好多线程安全的法宝就是封装,使数据有保护的被访问到
安全性:局部变量 > 成员变量 > 全局变量
6.printf("%3.0f\n", 9.00);输出的结果为9,因为要求输出的宽度为3,精度为0
7.pipe通过返回两个文件描述符比如fout、fin实现进程通信,一次通信共涉及四次拷贝
1、写入进程用户空间–写入进程内核空间;
2、写入进程内核空间–pipe内核空间
3、pipe内核空间–读入进程内核空间
4、读入进程内核空间–读入进程用户空间