备忘录(1)
1,短整数,char,short在赋值给一个长整数变量的时候 int_var = char_var ;会根据短整数是否是由符号而进行高字节填充,如果是有符号的,则用符号位填充,无符号则用0填充。
2,所以,在使用格式控制符"%x"打印一个变量的时候,如 printf("%x",char_var),如果char_var是有符号的且高位是1,则输出ffffffxx,因为%x按十六进制格式输出一个整数,即会在输出之前将char_var提升为32位的整数。所以,大于127的单字节整数按%x输出时就如上所示。
3,如果要输出一个单字节的整数,输出是0xmm的格式,则可以将char_var定义为无符号的,且格式控制符为 %02x
4,c语言定义多行的字符串常量:
const char str[] = "hello"
"word" ; //多个相邻的字符串如果中间使用0个或者多个空白,制表符以及换行符隔开,则C语言编译器会自动将这些字符串连接起来。
因此上面其实定义的是一个字符串:“helloword”
const char str[] = "hello\
word" ;
如果在一行代码的行尾放置一个反斜杠,c语言编译器会忽略行尾的换行符,而把下一行的内容也算作是本行的内容,这里反斜杠起到了续行的作用。