一、編譯及運行環境
系統為windows10 系統,軟件為Dev-c++5.11開發工具 Dev-c++5.11是一款通用的自由軟件,適合初學者及編程高手的不同需求。

二、整體思路及分析
整體思路:本人的末尾學號數字為0,加4后數組大小是4,所以數組中每個元素為a[0],a[1],a[2],a[3]。因此需要定義數組a[4];由於該數組需要指針遍歷,所以再
定義一個指針變量*p,自己需要定義的數組,像int a[4]={1,2,3,4}。此類語句元素需要手動修改,靈活度不高。考慮用rand()函數使計算機自己生成數組中的元素,
這樣無需手動修改。最后再利用for循環輸出該數組即可。
分析:頭文件部分:需要的頭文件有:stdio-標准輸入輸出頭文件、stdlib-標准庫函數頭文件、time-時間與日期頭文件、math-數學函數頭文件。
主函數定義部分:定義數組int a[4]、定義指針變量 int *p、定義第一個for循環變量 int i。
語句部分:初始化隨機種子:srand((unsigned)time(NULL))-使其每次擁有不同的運行數組元素。
第一個for循環:給數組中各元素隨機賦得不超過10的值,如果任意范圍賦值,則元素的值過大。
第二個for循環:以指針的方式輸出數組的各元素。初始條件為p的地址等於a[0]的地址,再進行p的自加;循環條件為p的地址小於或等於a[3]的地址;循環體為輸出函數。
三、代碼及運行
文字如下:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<math.h> 5 //以上為頭文件 6 int main( ){ //定義主函數默認為整型數據,int可省略 7 int a[4]; //定義整型名為a的,大小為4的數組 8 int *p; //定義指針變量*p 9 int i; //定義循環變量i 10 srand((unsigned)time(NULL)); //初始化隨機種子,使每次電腦運行結果不相同 11 for(i=0;i<=3;i++){ //第一次循環生成數組a[4] 12 a[i]=rand(); //隨機生成四個小於10的數組元素 13 } 14 for(p=a;p<=&a[3];p++){ //令p的地址與a[0]地址相同,地址自加,直到p和a[3]地址相同 15 printf("隨機生成的數組元素為:%d,地址為:%p",*p,p); //數組及其地址輸出 16 printf("\n"); //輸出換行符 17 } 18 return 0; //使函數返回值為0 19 } // 函數結束
圖片如下:

第一次運行結果:

第二次運行結果:
第三次運行結果:
經過這幾次的運行,可以清楚地看到,每次運行時,數組元素的數值不同,地址相同
四、總結
(1)每打完一行語句立即在句末加分號,不要打完整個程序后再分別加分號。
(2)明確各個關鍵字、系統自帶函數、C運算符的用法和使用條件,不能盲目亂用。
(3)自己編寫的函數盡量寫在主函數之前,這樣可以不用在主函數中聲明了。
(4)質量好,效率高,通用性強的算法,會對編程產生很大幫助。
(5)本次編程中,需注意函數所對應的頭文件,並盡可能用通俗易懂的語言解釋代碼。
(6)盡可能對變量進行初始化,且應注意初始化的值。
(7)for循環如果是地址循環,不能忘記加取址符號。
(8)代碼的格式:呈波浪形。
(9)有時編譯可能沒有錯誤,但可能運行不了。需要仔細檢查一下代碼。
