参考 C语言程序设计 第2版
导言:
- 输出中的转义字符 \n \t \b \ "
- 变量先定义+赋初值再使用为佳: in t i = 0;
- int 和 float的长度取决于机器16\32\64位机器
- 整数除法会舍位,所有小数都舍弃。
- %3d %6d 右对齐3位和6位。
- 整数和浮点数运算会转为浮点数,浮点数加.0f便于阅读
- %3.1f 至少占3个字符,小数点1位。
- %o 八进制 %x 十六进制 %c 字符 %ld long整形
- EOF end of File 文件结束标识符
- "abc"为字符串常量 'a'为字符常量
- int power(int, int); 函数声明,参数名可不写。
- 函数定义中的参数叫形式参数,调用中传递的叫实际参数。
- 传值调用 传引用调用。
- 外部变量(全局变量) 自动变量(局部变量)
- 声明Declaration 只说明变量的性质
- 定义Define 创建变量或分配存储单元
第二章:类型、运算符和表达式
所有整形都有signed 和 unsigned
外部变量定义前使用,或者不在同个源文件中,需要使用extern声明。
extern声明 不需要声明数组的长度
static会一直占据内存,并且只在本文件内可见
C预处理器
include #define
*和& 优先级比 + * 算术运算符高。return *p+1 先取p值再加1返回。
char中若保存非字符数据,请指定singned或unsigned
++--只能用于变量
逗号分割的表达式,从左到右顺序求值。
数组第一维下标可以不指定大小,其他的必须指定
argv[] 0为启动的程序名称。至少size为1.
argv[argc-1]为最后一个可选参数,argv[argc]为空指针。
printf内容也可以是表达式。谨慎使用
printf((argc > 1) ? "%s 1" : "%s 2", str);
排序算法:
判断任何两个对象之间次序的比较排序;
颠倒对象次序的交换操作;
比较和交换对象的排序算法。
优先级最高:. [] () ->
alloc分配不保证对齐
malloc分配保证对齐
char* s = "123";
char* p = (char*)malloc(strlen(s) + 1); // +1是为了再结尾加上字符\0
strcpy(p, s);
typedef创建新的数据类型名
联合体:union
是一个结构,保存类型长度最长的,并且和具体实现有关。
网友评论