《C Primer Plus》总结(一)
- %p 可以输出指针,%% 可以打印 “%” , %d 等价 %i %u 表示无符号十进制数。
- printf 中参数列表使用的是变量 和 常量 以及表达式的值。
- char 、 unsigned char 、 signed char 的区别:
char 的最高位为符号位,与 unsigned char表示范围不同;
char 在不同编译器中的具体解释与实现不同。
将 char 赋值给int 或lang时,会对 char 的最高位进行扩展。
如:
char a = -1; unsigned char b = -1;
printf("a=%d , b=%d ",a,b);
输出: a=-1 , b=255
可见: a= 1000 0001 , b= 1111 1110
printf("%*d",width,value)
" * " 可以用变量来设置数据宽度。
scanf("%*d, %d", &value1,&value2)
" * " 可以表示跳过输入的变量。- sizeof 为运算符,返回值类型为 size_t 一种无符号整形。
- 计算 a%b 时,对于正负数结果有统一运算规则:a - (a / b) * b ,C99之后,a与结果同号。
- ++ 和 – 运算优先级比*高。
a = 50 ;
赋值 是该语句的副作用,语句的主要作用是求值。- int 类型变为char型后,char的ASCII 码为 int%256.
- 运算符优先级 (待补充)
- 循环时:
1)测试条件有出口
2)测试值要初始化
3)迭代后测试值要更新 - 按下面的格式打印字母:
A
BC
DEF
GHIJ
KLMNO
PQRSTU
程序:
for(int i = 1, n = 1; (i >= (n*n - n + 2) / 2 && i <= (n*n + n) / 2) || (n++ <= 5 && printf("\n")); i++)
{
printf("%c",'A' + i - 1);
}
- C语言的编程风格:把两行合并成一行。
- scanf() 返回值是读取到的字符数。
- vim 编辑文件后 出现 ATTONTION , 因为vim未正常退出,.swap文件没有自动删除。
- C语言默认变量为自动存储类型。