c語言基礎(四)之指針
c語言指針常見錯誤
1.未經過初始化的指針變量,不能被使用
2.指針類型,需要根據不同的變量類型,定義不同的指針,不同的指針類型,不能相互轉化。
3.函數的變量不能跨函數使用。(不能使用指針去訪問已經失去作用範圍的變量。
如:主函數去使用子函數變量的值是不行的)
c語言*號的三種含義:
1.乘法
2.定義指針變量int* p;
3.指針運算符。
//如果p是一個已經定義好的指針變量,則*p表示以p的內容為地址的變量
指針和數組之間的關係:
//java中定義一個數組 byte arr[],或byte[] arr
//c語言定義一個數組 int a[3];
如:Int a[5] = {1,2,3};
數組也是從0開始的。取第二個元素用a[1]。若沒有給a完全附初值,則默認為0;則取a[4]=0
所以a[0]和*a其實是同一個東西(*a就是*(a+0)),公式:p[i]等價於*(p+i)
確定一個數組,需要兩個參數:
1.數組名字
2.數組長度
其實定義一個數組,數組的名字,就是數組的首地址。
注意:在c語言中,不檢查數組的下標。如:取int a[10]=不確定的值(當前這塊空間裏的值)
所以在c語言中,容易出現緩衝區越界的問題
最後更新:2017-04-02 17:28:41