一、复习题
1.打印处下列各项内容需要什么样的转换说明
- 一个字段宽度与位数相同的十进制整数 %d
- 字段宽度为15的unsigned long类型的整数 %15lu
- 一个形如0x8a、字段宽度为4的六进制数 %#4x
:对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x;对e,g,f 类当结果有小数时才给出小数点。
- 一个字段宽为8的字符串前8个字符 %8.8s
- 一个参数列表中给定字段宽度的八进制整数 %*o
- 读取下面各输入行的scanf()语句 catch 22 (我们需要跳过catch) %*s %d
二、基本运算符
- C语言中没有指数运算符,不过C的标准库中提供了一个pow函数来进行执行指数运算。
- C语言支持多重赋值,例如:
int jane,tarzan,cheeat;
cheeat = jane = tarzan = 8;
//三个变量都被赋值了8
- 支持+ - * /二目运算符,没什么好说的,记录一些特殊点,“截断”将会向0靠齐,例如:3.8截断为3,-3.5截断为-3
三、sizeof运算符和size_t类型
- sizeof运算符会以字节为单位返回运算对象的大小(char类型就是1字节)
- 注意点:如果运算对象是类型,则需要使用圆括号括起来,例如:sizeof (int);
#include<stdio.h>
int D24_sizeof(void) {
int n = 0;
size_t intsize;
intsize = sizeof(int);
printf("n = %d,n has %zd bytes;all ints have %zd bytes.
", n, sizeof n, intsize);
return 0;
}
- C头文件系统中可以使用typedef把size_t作为unsigned int 或者unsigned long的别名,这样,使用size_t的时候,编译器会根据不同的系统替换换成标准类型。
- C99做了进一步调整,**新增了%zd转换说明用于printf()显示size_t类型的值,如果系统不支持%zd,可以使用%u或者%lu来代替%zd.
三、源码: