K&R2心得//C語言概述

翻譯問題:
呼叫(call)函數→ 叫用函數(P.1-4)
迴圈(loop)→ 迴路、迴路體
區域變數(Local variable)→ 局部變數



字元
\a 嗶一聲
\f  跳頁
\r 歸位
\n 游標移到下一行的最左邊(新一行)
\t 游標移到右邊下一個定位點(Tab鍵,定位用的)
\v 垂直定位符號
\c
\b 游標移到左邊一格(倒退)
\0 NULL-terminated string(用於字串結束的符號)

P.1-8
while(a>b){    printf("33333");    }
的語法,意思是
if(a>b){     printf("33333");    }
if(a>b){     printf("33333");    }

....(做好幾次)

P.1-14
for(i=0;i<100;i++){    printf("33333");    }
的語法,意思是
i=0;    //只有一次
if(i<100){    printf("33333");    }
i++;  //在大括弧外,使用break;或continu;時跳出大括弧,卻還會執行它
if(i<100){    printf("33333");    }
i++;
...(做好幾次)

P.1-18
EOF,意思是「檔案結束」
#define EOF -1  //定義在stdio.h內

while(c != EOF)
{    (...其它的)    c = getchar( );    }

等同於
while( (c = getchar( )) != EOF)
{    (...其它的)   }

因為指定句可以當作運算式(所以才會造成初學把  a= =1000弄錯成a=1000,還可以執行的情況。

P.1-25
nl = nw = nc = 0;
意思是
nl = 0;    nw = 0;    nc = 0;        或        nl = ( nw = ( nc = 0 ) );

P.1-31
return 之後可以寫任何運算式

P.1-33
C程式中,副程式(函數)不能直接改變(呼叫副程式的)主程式的變數值,它只能改變自己(副程式)那份暫時性的副本。
意思是
主程式把值丟入副程式,副程式處理過程中,主程式是沒有更動到任何的值,副程式會自己宣告自己的記憶體空間(就算變數名稱和主程式一樣也是這麼做),存放主程式傳過來的值。
換句話說主程式的角色是在替副程式的部份變數「給初值」。

P.1-41
「注意文中用到定義(definition)與宣告(declaration)兩個字眼。定義指為變數安排記憶體;宣告則指只有描述變數之特性,並不安排記憶體位置。」

答:
這是沒問題的。在此是解釋「外部變數」的使用方式。
「第一次  ,在int main();           之外宣告的變數」書裡用的字為「定義」,電腦的動作當然是安排記憶。
「第一次之後,在int main();或其它函數(或副程式)之內宣告的變數」書裡用的字為「宣告」,電腦的動作外不安排記憶體,只是去找出剛宣告好的記憶體位址使用。

沒有留言:

張貼留言

(什麼是留言欄訊息?)