數組和指針


聲明一個數組時,編譯器將根據聲明所指定的元素數量為為數組保留內存空間,然后再創建數組名,它的值是一個常量,指向這段空間的起始位置。

聲明一個指針變量時,編譯器只為指針本身保留內存空間,它並不為任何整型值分配內存空間。而且,指針變量並未被初始化為指向任何現有的內存空間,如果它是一個自動變量,它甚至根本不會被初始化。

如:

int a[5];
int *b

此時,*a是完全合法的,但表達式*b是非法的,*b將訪問內存中某個不確定的位置,或者導致程序終止,另外,b++可以通過編譯,但是a++不能,因為a是常量。

作為函數參數的數組名:

使用數組作為形參時,函數的聲明形式可以為:

int strlen(char* string);
int strlen(char string[])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM