例一:
#include main();for (i=0;i<=9;i++)
}
例二:
#include main();for (i=0;i<=9;i++)
}
二:通過指標訪問陣列元素
#include main();int *pa;
pa=a;
for (i=0;i<=9;i++)
}
#include main();int *pa;
pa=a;
for (i=0;i<=9;i++)
}
看pa=a即陣列名賦值給指標,以及通過陣列名、指針對元素的訪問形式看,它們並沒有什麼區別,從這裡可以看出陣列名其實也就是指標。難道它們沒有任何區別?有,請繼續。
#include main();int *pa;
pa=a;
for (i=0;i<=9;i++)
}
修改一下,看pa和a是否等同
#include main();int *pa;
pa=a;
for (i=0;i<=9;i++)
}
原因分析:
可以看出,這段**也是將陣列各元素值輸出。不過,你把{}中的pa改成a試試。你會發現程式編譯出錯,不能成功。看來指標和陣列名還是不同的。其實上面的指標是指標變數,而陣列名只是乙個指標常量。這個**與上面的**不同的是,指標pa在整個迴圈中,其值是不斷遞增的,即指標值被修改了。陣列名是指標常量,其值是不能修改的,因此不能類似這樣操作:a++。前面4,5節中pa[i],*(pa+i)處,指標pa的值是使終沒有改變。所以變數指標pa與陣列名a可以互換。
四:申明指標常量
#include main();int * const pa=a; //
注意const的位置:不是const int * pa,
for (i=0;i<=9;i++)
}
這時候的**能成功編譯嗎?不能。因為pa指標被定義為常量指標了。這時與陣列名a已經沒有不同。這更說明了陣列名就是常量指標。但是…
int * const a=;//不行
int a=;//可以,所以初始化陣列時必定要這樣。
以上都是在c-free上實驗過的。
陣列名與指標
引言 指標是c c 語言的特色,而陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 很幸運,我的大學老師就是其中之一。時至今日,我日復一日地進行著c c 專案的開發,而身邊...
陣列名與指標
include using namespace std int main int b 2 10 陣列名本身就是指標,再加上 就變成了雙指標,這裡的雙指標的就是指二維陣列 int p int a 1 p指向a陣列的第6個元素 雖然不存在 cout p 1 cout b 1 cout b 0 retur...
陣列名與指標
在本科畢業前,一直以為陣列名就是指標,但是最近看了一些技術文章和與一些技術大佬的討論,我開始迷茫了,在心裡一直有疑問,在本科寫程式的時候一直就拿陣列名當指標用啊,沒什麼問題啊,但是後來想了想,有了點靈感,就寫下來,不知道自己琢磨的是否通透,歡迎交流學習。首先說明陣列名為什麼不是指標 上例子 incl...