天天看點

c primer plus

第一章初始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第三個元素的值