這個系列文章将會持續更新,有需要可以關注我
日本馬上要開始新一個學年了,很多新生還有一個多月就要步入大學生活了,在日本學習計算機的留學生們經常會遇到一個問題,就是計算機中的專有名詞太多,而且多為片假名,難記還不容易理解。作為傳說中的熱心學長,一想到之後教學弟學妹們的苦逼擔子就感覺肩膀好痛,遂寫了這個篇文章,幫助學弟學妹們不受語言的限制,快速學好C語言。如果沒有基礎的話,建議在學習的過程中閱讀,完全0基礎的話有些東西會感覺到生澀難懂。
下面将列出一些常用的編程語言(C語言)中的名詞及解釋。
ソースプログラミング
源代碼,是英語source program的直譯。
ソースファイル
源文件,是英語source file的直譯。在C語言中通常指【.c】、【.cpp】(c )作為尾綴的文件。
コンパイル
編譯,是英語compile的直譯。通常指将高級語言翻譯成更低級語言的過程,一般來說将高級語言(我們所書寫的代碼)轉換為機器碼的整個過程稱為編譯。
注:漢語中C語言編譯器編譯時,代碼預處理之後,将代碼翻譯成彙編的過程也被稱之為編譯,因為同樣是從高級到低級的過程。
リンク
鍊接,是英語link的直譯。通常指将各個目标文件(源文件等)和庫文件鍊接起來。在C語言編譯器中,鍊接是彙編之後的一個步驟。
診斷メッセージ
診斷信息,英語為dignostic message。診斷信息是編譯器為我們查找代碼中的錯誤提供的重要工具,可以根據診斷信息的提示來修改代碼。
注釈(コメント)
注釋,英語為comment。注釋是為了在代碼中記錄某些信息或提示,避免自己或他人以後難以理解代碼。在C語言中 \\ 代表單行注釋,也就是\\之後的一整行都會被編譯器無視。\* 内容 *\代表多行注釋,裡面的内容無論多少行,隻要是在\*和*\之間的,都會被編譯器無視。例如:
int a;//從這往後會被注釋 但到這裡就不會被注釋了,在編譯器中會報錯 /* 這之間的 無論多少行都會被編譯器無視 */
関數
函數,英語為function。個人感覺看function更容易理解,function是功能的意思,前期理解為一個函數就是一個功能。例如:
int main(){ printf("hello world"); }
其中main是一個函數,也是我們程序的默認主入口。printf也是一個函數,printf的功能就是将内容打印至屏幕。
如果難以理解,可以隻記住“関數就是功能的意思”就可以了。
メイン関數
主函數,英語為main function。main函數是程序的主入口,在前期我們的代碼都會寫在main函數内。main函數就像一個大客廳,去往其他房間都需要經過main,當然後期可以通過一些操作更改為其他函數。
関數呼出し
調用函數,英語為function call。意思就是使用某個函數的意思。例如
int main(){ printf("hello world");//我們在這裡調用了printf函數,向屏幕輸出了hello world }
実引數
實參,英語為argument。也就是真實的參數的意思,指的是被函數調用的具體的任何值,與其相對應的就是形參。實參和形參之後會再講一遍,前期有一些不太好理解。
前期先用前面說的printf舉一個例子。
printf("%d",20 5);
這裡面"%d"是一個實參,20 5是另一個實參。%d的意思後面會講到,前期先大體了解一下就好了。
セミコロン
分号(;),是英語semicolon的直譯。在C語言中分号代表一段語句的結束(這也是很多程序員梗的由來),當然也有類似預處理指令是不用分号結尾的特例,在後面會講到,現在隻要知道セミコロン代表分号即可。
定數
常量,英語為constant。常量故名思意,就是一經更改就無法改變的量。在C語言中可以使用預編譯指令#define和const修飾符來定義常量,常量在定義時必須被賦值。例:
#define CONSTSNT 10 int main(){ const int constsnt=10; }
雖然都可以用來定義常量,但這兩種方法其實是有區别的,前期隻要知道有區别即可。
ps.是不是發現常量的定義事實上就是常量的英文的前半部分呀,這也是為什麼我一直标注英語的原因啦,編程語言裡很多關鍵字其實都是英語單詞或英語單詞的一部分。
変數
變量,英語為variable。和上面的常量相反,變量是可以改變的,可以把變量當成一個盒子,我們可以向這個盒子裡裝數據,數據類型就是這個盒子的标簽,變量名就是這個盒子的名字,每個盒子隻能裝标簽對應的類型,而數據範圍就是盒子的大小。
語法為:
數據類型 變量名;//僅定義 數據類型 變量名=值;//定義并初始化 //如果前面已經定義了一個變量 變量名=值;//可以通過賦值的方式更改原來的值或初始化。
C語言中常見的數據類型有int(整數型)、float(單精度浮點型)、double(雙精度浮點型)、char(字符型)等,float和double又被稱為實數類型。數據類型具體在後面會講。
定義變量例子:
int a=5; int b; double c=5.66; float d=7.88f;//float類型後面必須加f或F,不然會默認為double類型 char e='E';//char類型隻能儲存一個字符,字符需要用''來包裹。
宣言
聲明、定義,英語為delaration。告訴編譯器你創建了一個函數或變量的過程叫做聲明。
int a;
這就是聲明。
初期化
初始化,英語為initialize。創建了一個變量後,這個變量是沒有内容的,直接拿來使用可能會報錯(學習scanf時應該會經常遇到)。所以我們需要為創建的變量賦一個初始值,這個過程就是初始化。
例:
int a=0;//在聲明的同時進行初始化 //也可以先定義,不初始化,在需要的時候初始化 int b; b=0;
変換指定
格式化說明符,英語為conversion specification,在前面稍微提到了%d,%d就是一個格式化說明符。C語言有各種數據類型,例如int、float、double、char等,格式化說明符是為了讓編譯器可以準确識别這些數據類型,将接收到的變量,以格式化說明符的類型進行輸出輸入。下面是一些常用的格式化說明符在printf的情況下的說明(VS2017):
%d對應接收整數,也就是int、short、long等。
- 如果接收小數會輸出一些意想不到的數字;
- 如果接收字符(char類型)則會打印出字符的ASCII碼;
- 如果接收字符串(char*類型)則會輸出一些意想不到的數字;
- 如果接收布爾值中的true則會打印出1,如果接收布爾值中的false則會打印出0。
- 如果接收null與false相同。
%f對應接收單精度浮點型(實數、小數),也就是float。很多人誤以為float可以儲存6位小數,但其實float最大隻能儲存6位小數(7個有效位),如果整數部分有6位則小數部分會無法精确儲存(前兩位小數在部分情況下是正常的)。
- %f如果接收整數、字符、字符串、布爾值、null等則會打印出0.000000。
%lf對應接收雙精度浮點型(實數、小數),也就是double。double擁有16位有效位,%lf中的l代表long的意思,長浮點型。其餘與%f相同。
%c對應接收字符(單個字符,被' '包裹),也就是char。
- 如果接收整數、小數、字符串,将什麼都不輸出。(整數的情況下如果是在ASCII的序号範圍内的,則會輸出ASCII對應的字符,)
- 如果接收布爾值的話,因為布爾值中true代表1,false代表0,所以會輸出ASCII對應的字符,true是笑臉(多半無法顯示),false是空格。
%s對應接收字符串(多個字符,被" "包裹),也就是char* (如果學過C#之類的就相當于string)。
- 如果接收除了false、0、'\0'以外的任何值,在Release的情況下執行會卡在控制台,無法通過回車退出,隻能手動關閉。(因為字符串類型需要有\0做結束符,隻要沒有遇到\0就不會結束)。
- 如果接收false、null、0、'\0',則會在控制台輸出 (null) (在vs2017的情況下),因為這四個的值本質其實都是0,所以相當于控制台隻接收到了一個結束符,内容為空。
文字列(文字列リテラル)
字符串,英語位string(string literal)。代表多個字符組成的一串文字,在C語言中字符串需要包裹在" "内,且以\0結尾(編譯器會自動加上,隻要在字符串數組最後留一個位置即可)。
例:
char str[50]="xyz";
這裡xyz就是一個字符串。
書式文字列
格式字符串,英語為format string。其實可以理解為帶有格式說明符的字符串,通常出現在printf内。(這個隻是一部分意思,因為日語和漢語的差異,在這裡先講這一部分)
例:
printf("這是一個數字 %d \n");
其中"這是一個數字 %d \n"就是格式字符串。
拡張表記
轉義字符,英語為escape sequence,可以理解為用一些規定好的符号來輸出原本無法輸出的字符。比如我們比較常見的\n(換行),還有上面提到過的\0。其實本質都是打印ASCII字符表的字符來實現特殊功能。
其實C語言隻要掌握了編程思維,學習起來就很輕松了,包括學習其他語言進度也會變得很快,我之後也會持續更新相關系列,想要學習的可以關注我,以免走丢哦
注:本文中日語名詞均出自《新・明解C言語 入門編》ーー柴田望洋
版權所有,轉載請私聊我
,