指標和陣列的定義與宣告

2021-08-20 14:58:32 字數 1311 閱讀 1993

在這裡我們做種強調的是在兩個檔案中,定義為陣列宣告為指標和定義為指宣告為陣列的這輛中情況。那麼我們就需要兩個原始檔test.c和main.c。

定義為陣列,宣告為指標

test.c

char arr = "abcdef";
main.c

#define _crt_secure_no_warnings 1

#include

#include

extern

char *arr; //宣告

int main()

就會出現以下的錯誤:

就會出現,讀取位置發生訪問衝突

定義為指標,宣告為陣列

test.c

char *p = "abcdef";
main.c

#define _crt_secure_no_warnings 1

#include

#include

extern

char arr; //這裡只是說他是乙個陣列,不需要填寫陣列個數

int main()

執行之後就會發現,呀!我的程式執行出來是隨機值,不對呀,我明明將它存放進去了。

那我們如何在定義為指標、宣告為陣列的情況下,取出指標中所指向的字串?

#define _crt_secure_no_warnings 1

#include

#include

extern

char p; //這裡只是說他是乙個陣列,不需要填寫陣列個數

總結:1. 定義和宣告使用的是同一塊空間

2. 指標大小是4個位元組,陣列大小不一定

3. 指標和陣列不一樣

指標陣列和陣列指標 和 指標和陣列的定義與宣告

舉個栗子來區分以下指標陣列和陣列指標 int arr1 10 是指標陣列,arr1和 的結合性更高一些,所以arr1先與 結合成為陣列,陣列有10個元素,每個元素的型別都為int 型,所以 int arr1 10 是存放整型指標的陣列。int p 10 是陣列指標,p先與 結合,說明p是乙個指標變數...

指標和陣列(第五節 定義與宣告)

檔案1中定義如下 chara 100 檔案2中宣告如下 externchar a 關於extern的用法,以及定義和宣告的區別,請複習第一章 這裡,檔案1中定義了陣列a,檔案2中宣告它為指標。這有什麼問題嗎?平時不是總說陣列與指標相似,甚至可以通用嗎?但是,很不幸,這是錯誤的。通過上面的分析我們也能...

定義為指標,宣告為陣列

檔案1中 定義指標 檔案2 宣告為陣列 char str abcd 在檔案1中 extern char str 在檔案2中 在檔案1中str這個變數裡面儲存了乙個字串的首位址假設是0x12345678 這個位址裡面存了a 後面的位址存放了b 依次類推 在檔案2中使用的時候會出現的問題 char c ...