C專家程式設計學習之第四章 陣列和指標

2021-06-09 01:42:26 字數 882 閱讀 7480

第四章 指標和陣列

宣告和定義的最主要區別:宣告並未非配記憶體, 定義一定分配了記憶體。

1、當我們在檔案1中,定義:

int mango[100];

在檔案2中:宣告:

extern int *mango;

這是不對的,當你宣告為extern int *mango時,編譯器理所當然認為mango是乙個指標,在檔案2中,我用sizeof(mango),結果為4.

定義指標時,編譯器並不為指標所指向的物件分配記憶體空間,它只分配指標本身的空間。除非在定義的同時賦給指標乙個字串常量進行初始化。例:

char *p = "abcdefg";

注意:只有對字串常量才是如此。不能指望為浮點數之類的常量分配空間,如:

float *pip = 3.14;        /*錯誤, 無法通過編譯*/

在ansi c中,初始化指標時所建立的字串常量被定義為唯讀的。如果試圖通過指標修改這個字串的值,程式就會出現未定義的行為。

陣列也可以用字串常量來進行初始化, 如:

char a = "abcdefg;

與指標不同的是, 由字串常量初始化的陣列是可以修改的。

對於陣列char a[10];

&a[0]和&a有何異同呢?

很明顯,&a[0]表示的是陣列首元素的位址,即相當於a, 而&a則表示的是整個陣列的首位址, 舉個例子

char a[10];    

若陣列a首元素位址為0xbfb1b022, 則

&a = 0x0xbfb1b022

&a + 1 = 0x0xbfb1b02c

&a[0] = 0x0xbfb1b022

&a[1] = 0x0xbfb1b023

今天先看到這裡,過幾天再論一下陣列和指標!

C 第四章 陣列

二維陣列 陣列是一組相同元素的集合.陣列的建立方式 type t arr name const n type t 是指數組的元素型別 const 是乙個 常量表示式,用來指定陣列的大小 陣列建立的例項 1 int arr1 10 2 int count 10 int arr2 count 3 cha...

第四章 程式設計

選擇語言的原則 最少的工作量原則 最少技巧性原則 最少錯誤原則 最少維護原則 減少記憶原則 總原則 先求正確後求快 先求清晰後求快 求快不忘保持程式正確性 保持程式整潔以求快 不要因效率而犧牲清晰 好程式標準 易於測試和除錯 易於維護 易於修改 設計簡單 高效率結構化程式設計主要包括兩方面 在編寫程...

第四章 陣列

一維陣列的定義 當陣列中每個元素只帶有乙個下標時,我們稱這樣的陣列為一維陣列。陣列的定義格式如下 型別識別符號 陣列名 常量表示式 說明 陣列名的命名規則與變數名的命名規則一致。常量表示式表示陣列元素的個數。可以是常量和符號常量,但不能是變數。例如 int a 10 陣列a定義是合法的 int b ...