用指針遍歷一維數組數組
1 #include<stdio.h>
2 int main()
3 {
4 int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};//定義一個一維數組並初始化 5 int i;//定義一個整型變量 6 int *pointer;//定義一個指針變量 7 pointer=a;//而且指針指向數組a 8 for(i=0;i<12;i++)//利用循環輸出數組的各個元素 9 printf("a[%d]=%d\n",i,*(pointer+i));//打印每一個數組元素
return 0;
10 }
分析:函數
1.學習
#include<stdio.h>
第一行是調用庫函數,即stdio 就是指 「standard buffered input&output",標是函數中用到了printf這個函數!須要在主函數上進行聲明。spa
2.指針
int main()
第二行是定義一個int 型的主函數。一個C程序有且只有一個主函數!code
3.blog
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};
定義一個一維數組(個人學號末尾是8)並直接進行初始化,也能夠先定義後初始化,其中一維數組的長度能夠不寫。input
4.io
int *pointer;
定義一個指針變量;以前我老是把指針變量和指針弄混,把書上的定義又看了一遍!指針是地址,而指針變量則是地址變量。for循環
例如:
int i=2;
int *p;
p=&i;
在這三行代碼裏面,i是一個int型變量,p是一個int型的指針變量,p裏面的值是指針!
5.
pointer=a;
在寫這一行代碼時出現了一個問題,就是一開始我這樣寫pointer=&a,編譯出現了錯誤!我想了半天也沒想出來,經過老師的引導,明白了;首先數組名就是數組的首地址,即a=&a[0],可是兩個含義不一樣,a是默認爲數組首地址,但同時也是表示整個數組,因此pointer=&a是不對的!,他不知道該取數組中的哪個元素的地址!
錯誤緣由:沒可以理解定義,按照本身的想法去作!
6.
for(i=0;i<12;i++)
這是一個for循環,可讓數組中每一個元素一個個輸出即數組遍歷!這裏要注意()中的語句要用;隔開!!!並且若是循環體中有多個語句時能夠用{};其實用while循環也是能夠的!不過沒有for循環簡練!
7.
printf("a[%d]=%d\n",i,*(pointer+i));
這是輸出函數,把數組的每個元素打印出來!這裏要注意打印的數據類型,以及輸出表列的表達式!
總結:
(1)像在定義一個一維數組時能夠不寫數組的長度,可是二維數組就必需要寫了!數組初始化時,注意數組元素是用{}而且有;
(2)多用註釋會節約不少時間。
(3)在學習過程當中,要常常複習前面的知識點,不會的地方必定要多查資料和課本!能夠鞏固和提升本身的專業知識!
(4)學習C語言要有一顆嚴謹的心,我就是那種容易大意的人,經過C語言的學習讓我細心了許多!
(5)實踐是學習C語言的捷徑!只有實踐纔會發現不少錯誤並提升!