# C_Programing_Language **Repository Path**: oschinachen/c_-programing_-language ## Basic Information - **Project Name**: C_Programing_Language - **Description**: C_Programing_Language笔记 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-28 - **Last Updated**: 2024-02-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 左耳听风 传奇程序员练级攻略 陈皓。著
> P106: > 如果你不学习 C 语言,你根本没有资格称自己为一个合格的程序员! ++ -- prefix operator vs postfix,只适用于变量 ++n 在 n 使用前加 1,n++ 在 n 使用后+1 ++ --的出现是为了简化代码的写法 ```c for(int i=0,j=0;s[i]!='\0';i++){ if(s[i]!=c){ s[j++]=s[i]; } s[j]='\0'; } ``` expr1 op= expr2 is equivalent to expr1 = (expr1) op (expr2) 为什么这样定义,1. 简化写法 2,直观,更便与人理解 op : + - \* / % << >> & ^ | ```c x = 2,y = 2 , x *= y + 1 ; result x=6; x *= y + 1 => x = x * (y + 1) ``` ```c #include int bitcount(unsigned x) { int b; for (b = 0; x != 0; x >>= 1) if (x & 01) b++; return b; } int main() { printf("%d\n", bitcount(5)); } ``` c 语言为了简化设计了不少语法糖,初学只觉得有此语法晦涩难懂,再学方知 c 语言是一门超经实用的语言,它能获得成功,与实用性脱不了关系,一切从 c 语言衍生出来的语言大多选择保留了 c 语言的这种设计。当初学 c 语言的时候怎么没想到呢? ## 第四章:Functions and Program Structure 思考: 1. C语言函数声明中的参数名和函数实现时的参数名不一致,声明中的函数是给API使用者看的,实现时是实现者看的,为了代码不至过长,名字都行短。 2. c语言作者出的书里面, bool值得的判断条件都是用的 & 而非 &&(少一个字符真是简洁) 3. 递归(recursive),没有什么难以理解的,就是一个函数直接或者间接调用自身,例:quicksort算法 4. 条件编译 ## 第五章: Pointers And Arrays 指针是个变量,给变量赋值,变量自增都不合法的 数组名只是给数组起的一个名字,不是变量。给数组名赋值,数组名自增都是韭法的 5.11 `*p() 中 ()的优先级比*高` 在c类语言中搞懂运行符的优先级韭常重要