printf注意事项:行缓冲
①满一行才输出 ②遇到\n或\r才输出
scanf和printf用的是同一个缓冲区
★不作要求时printf加\n
char *result = "hello world"是常量不能赋值
“%d\n”,__LINE__ 当前代码所在行号
“%s:%d\n”,__func__ 打印这个代码所在函数名
"a[%d] = %d\n",i,a[i];
"\033[47;31mhello world\033[5m"
47字背景白色 31字体红色 \33[5m 字闪烁
指针是一个变量 保存的是地址
指针的步长(地址的步长)
★对应的内存空间 指向的内存空间:就是这个指针变量对应内存空间里保存的地址对应的内存空间,我们称之为指向的内存空间;
int num = 5;
int *p; p=#
int *p = #
num++; 对num对应的内存空间的值自加1;
p++; 对p对应内存空间的值自加1;
(*p)++; 对p指向的内存空间的值自加1;
√
*:①间接运算符②取值运算符:取指针变量对应空间保存的地址对应的内存空间的值
num:5 0x1000
p:0x1000 0x2000
pp:0x2000 0x3000
ppp:0x3000 0x4000
num == *p == **p == ***ppp == 5
p == *p == **ppp = 0x1000 = &num
pp == *ppp == 0x2000 == &p
ppp == 0x3000 == &pp