-
包括標頭檔案
main ( *main 函式*。
char a[100]="c programming",b="language", * 定義乙個長度為 100 的 char 型別陣列 a,其內容為"c programming",它定義了乙個 char 型別的陣列 b,其內容為"language"這裡有乙個錯誤,每行都應該以分號結尾,而不是逗號*
char*p1,p2;*根據上下文,這應該是定義兩個 char* 變數 p1 和 p2,但這是不可能的,編譯器會認為是 char* 變數 p1 和 char 變數 p2,這個語句最好分開寫,寫成:char* p1; char* p2; */
p1=a;將陣列 a 的第乙個位址分配給 p1
p2=b;將陣列 b 的第乙個位址分配給 p2
while(*p1!="\0"* 當字元 p1 指向不是 0 時執行以下迴圈,這裡也有問題,0 是字元而不是字串,所以應該用單引號括起來,而不是雙引號*
printf("%c",*p1);*列印螢幕上P1所指的字元,這裡也有錯誤,右半括號和分號應該是半形英文標點符號,而不是中文全形標點符號*
p1++;將 p1 更改為指向陣列中的下乙個字元,其中的分號也是雙角字元*
printf("-"*在螢幕上列印“-”,其中左括號不能為全形字符,行尾應新增分號*
while(*p2!="\0"*這個迴圈和上乙個一樣,列印b陣列的內容,這裡還是不能用雙引號,要改成單引號*
使用大括號的左半部分*
printf("%c",*p2);
p2++ * 行尾沒有分號,應加上 *
printf("");列印換行符
新增:C儲存乙個字串的時候,會自動在字串的末尾加乙個0個字元(0是乙個字元,不是兩個)來表示這個字元的結尾,所以實際儲存在陣列A中的是"c programming\0",b被儲存"language\0",因此在程式中確定兩個 while 迴圈結束的條件是遇到 0 字元。
-
結果是: c programming
language
粗略地說:
a[100]="c programming",b="language";
定義兩個陣列 a、b; 並單獨分配值"c programming","language".
2. char*p1,p2;
p1=a;p2=b;
定義兩個指標變數 p1 和 p2,並分別分配兩個陣列 a 和 b 的第乙個位址,即'c',"l"的記憶體位址。
3. while(*p1!="\0")
printf("%c",*p1);
p1++;輸出 p1 逐個字元引用的內容,而不是單詞 (.) 的末尾'\0'),將 p1 指向下乙個字元,例如,p1 從指向“c”到指向“,然後指向”p”','r'...
4.同下文3
-
指標 p1 指向 a,指標 p2 指向 b,第乙個迴圈列印 a 中的字串,*p1!='\0'因為最後是因為字串都有乙個'\0'作為結束。 '\0'它是 0,如果遇到 0,它就會退出。
第二個迴圈列印出 b 中的字串,如上所述。
-
高階語言分為編譯語言和解釋語言。
1.基於編譯的語言使用專門的編譯器將高階語言源**編譯成機器程式碼,可以由平台的硬體針對特定平台一次執行,並將其打包成平台可以識別為可執行程式的格式。
現有的 C、C++ 等都是編譯語言。
2.解釋型語言使用專門的直譯器將源程式逐行解釋為特定於平台的機器程式碼,並立即執行。
Python 等是解釋型語言。
-
C 是一種編譯語言。
main() [主要函式主程式]。
int i,j,k;【定義整數資料 i,j,k】for(i=1; i<=6;i++) 主迴圈,i 從 1 到 6,增加到 1] for(j=1; j<=20-2*i;J++) 子迴圈,J 從 1 到 20-2*i >>>More
這個問題需要了解系統在編譯時會給靜態變數分配記憶體,函式呼叫結束後不會釋放它們占用的記憶體單元,即變數的值是下次函式呼叫時上乙個函式呼叫的值。 >>>More