第一章初始c語言
c缺點:c指針程式設計
c運用大量運算符,
IOCCCthe International Obfuscated C Code Contest
第二章C語言概述
2.4提高程式可讀性的技巧
選擇有意義的函數名和寫注釋
在函數中用空行分隔概念上的多個部分
每條語句各占一行
2.8關鍵字和保留辨別符
auto extern short while break float signed _Alignas case for sizeof _Alignof char goto static _Atomic const if struct _Bool
continue iniline switch _Complex default int typedef _Generic do long union _Imaginary double register unsigned _Noreturn else restrict vodi _Static_assert enum return volatile _Thread_local
第三章資料和c
第四章字元串和格式化輸入輸出
4.2 char name[40]; 為字元串建立數組
scanf("%s",name);scanf在遇到第1個空白(空格、制表符或換行符)時就不再讀取輸入。字元數組不用位址
strlen(name);結果不包含最後的\0
sizeof(name);結果是40,傳回size_t類型的值,是一個無符号整數類型,
4.4轉換說明
%a %A %c %d %e %E %f %g %G %i %o %p %s %u %x %X %%
第五章運算符、表達式和語句
運算符優先級
11/5 得2,11%5=1
11/-5得-2,11%-2=1
-11/-5得2,-11%-5=-1
-11/5得-2,-11%5=-1
a_post=a++;使用a的值後,遞增a
b_post=++b;使用b的值之前,遞增b
while()
{}
for(;;)
{}
do
statement
while(expression);
第六章c控制語句:循環
if
else if
else
第七章c控制語句:分支和跳轉
getchar()
putchar()
7.5條件運算符
expression1 ? expression2 :expression3
continue
break
switch(ch)
{
case 'a':
printf("argali");
break;
case 'b':
printf("babirusa");
break;
default:
printf("fisher");
}
第八章字元輸入輸出和輸入驗證
遞歸的基本原理:每次函數調用都會傳回一次,當函數執行完畢後,控制權将被傳回到上一級遞歸。
尾遞歸把遞歸調用置于函數的末尾,正好在return語句之前,
第九章函數
*間接運算符,
ptr=&poch,把poch的位址賦給ptr
var=*ptr,找出ptr指向的值
double duff(double,int);//函數原型
int main(void)
{
doouble q,x;
int n;
....
q=duff(x,n);//函數調用
....
}
double duff(double u,int k) //函數定義
{
double tor;
...
return tor; //傳回double類型的值
}
第十章數值和指針
防止數組下标超出邊界;
指定數組的大小
a1[5*2+1]可以
a1[sizeof(int)+1]可以
a1[-4]不可以
a1[0]不可以
a1[2.5]不可以
初始化二維數組
指針加1,指針的值遞增它所指向對象的值。
datas+2==&dates[2]
*(dates+2)==dates[2]
*dates+2 //第一個元素的值加2
*(dates+2)//dates第三個元素的值