C语言学习笔记 变量类型
1.int 表示计算机CPU中寄存器的大小,所以不同的计算机及编译器得到的int类型所占字节可能不同,遇刺类似的还有long类型。
2.整数的内部表达:补码的意义就是拿不骂和原码可以加出一个溢出的“零”。-1+1=0,11111111 + 00000001 = 100000000。
11111111被当作纯二进制看待就是255,被当作补码看待就是 -1 。
3.char既可以表示字符,也可以表示整数。C语言中用%c来进行字符的输入输出。
1 #include <stdio.h> 2 3 int main() 4 { 5 char c; 6 scanf("%c", &c); 7 printf("c=%d\n", c); 8 printf("c=%c\n", c); 9 printf("c='%c'\n", c);//%c就代表字符1 10 11 return 0; 12 } 13 /*1 14 c = 49 15 c = 1 16 c = '1'*/
//scanf("%d %c")与scanf("%d%c")的区别 int main() { int i; char c; scanf("%d %c", &i, &c); printf("i=%d, c=%d, c='%c'", i, c, c); return 0; } //12 a //i = 12, c = 97, c = 'a' //12a //i = 12, c = 97, c = 'a' ---------------------------------------------------- int main() { int i; char c; scanf("%d%c", &i, &c); printf("i=%d, c=%d, c='%c'", i, c, c); return 0; } //12a //i = 12, c = 97, c = 'a' //12 a //i = 12, c = 32, c = ' ' 读入的是空格
//字母大小写转换
int main() { char c = 'a'; char b = 'A'; printf("c=%d, c='%c' b=%d, b='%c'\n", c, c, b, b); printf("'a'-'A'=%d\n", c - b); printf("A->a:%c\n", b + 32); printf("a->A:%c\n", c - 32); return 0; } //c = 97, c = 'a' b = 65, b = 'A' //'a' - 'A' = 32 //A->a:a //a->A : A
4. 类型转换
当运算符的两边类型不一致时,会自动转换为较大的类型。
自动类型转换 char->short->int->long->long long int->float->double 对于printf,任何小于int的类型会被自动转换成int,float会被转换成double 但scanf不会,要输入short,需要%hd 强制类型转换 形式:(类型)值,比如(int)10.2, (short)32 注意这时候的安全性,小的变量不总能表达大的变量,(short)32768----》-32768,(char)32768--》0 强制类型转换只是从那个变量计算出了一个新的类型的值,它不改变那个变量,无论是值还是类型。 强制类型转换的优先级高于四则运算。
5. bool类型
#include <stdbool.h>之后就可以使用bool和true,false
6. 逻辑运算
注意:不要把赋值,包括复合赋值组合进表达式。
条件运算符
//条件运算符优先于赋值运算符,但低于其他运算符
count = (count > 10) ? count - 10 : count + 10 相当于 if (count > 10) count = count - 10; else count = count + 10;
//不要使用嵌套的条件运算符
优美胜于丑陋(Python 以编写优美的代码为目标)//
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)//
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)//
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)//
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)//
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)//
可读性很重要(优美的代码是可读的)//
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)//
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)//
当存在多种可能,不要尝试去猜测‘而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)。虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )//
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)//
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)//
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)//