聲明一個數組時,編譯器將根據聲明所指定的元素數量為為數組保留內存空間,然后再創建數組名,它的值是一個常量,指向這段空間的起始位置。
聲明一個指針變量時,編譯器只為指針本身保留內存空間,它並不為任何整型值分配內存空間。而且,指針變量並未被初始化為指向任何現有的內存空間,如果它是一個自動變量,它甚至根本不會被初始化。
如:
int a[5]; int *b
此時,*a是完全合法的,但表達式*b是非法的,*b將訪問內存中某個不確定的位置,或者導致程序終止,另外,b++可以通過編譯,但是a++不能,因為a是常量。
作為函數參數的數組名:
使用數組作為形參時,函數的聲明形式可以為:
int strlen(char* string); int strlen(char string[])
