K&R2心得//C語言概述
¶K&R2心得//C語言概述
原文連結: https://darkblack01.blogspot.com/2011/03/k.html
移植時的最後更新日期: 2015-12-23T14:16:57.653+08:00
翻譯問題:
呼叫(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();或其它函數(或副程式)之內宣告的變數」書裡用的字為「宣告」,電腦的動作外不安排記憶體,只是去找出剛宣告好的記憶體位址使用。