利用指針遍歷數組

用指針遍歷一維數組數組

 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語言的捷徑!只有實踐纔會發現不少錯誤並提升!

相關文章
相關標籤/搜索