C語言字元指標賦值的問題

2021-08-14 00:02:07 字數 991 閱讀 7569

#include void initialize (char * a, char * b)  

#define array_size 10 

char a[array_size]; 

char b[array_size]; 

int main(int argc, char * argv)

題意是列印兩個 this is b,即:

this is b

this is b

但程式的執行結果是:

this is b

(空)

char a[array_size]; 

char b[array_size];

這是兩個已開闢空間的了陣列

void initialize (char * a, char * b) 這是兩個形參,純指標!

initialize(a, b); 這句過後,形參指標ab就分別指向了陣列ab!

a[0] =.....這是通過指標a間接往陣列a賦值!

b = a;//b指標本來指向陣列b ,但這句邊變成把b指標指向a指標所指向的空間,也就是b指標也指向了陣列a,而不是內容copy!

this is b

(空)第二句是空那是因為b陣列從未被賦值,它都是0,0是字串結束符,char b[array_size];

這是兩個已開闢空間的了陣列

void initialize (char * a, char * b) 這是兩個形參,純指標!

initialize(a, b); 這句過後,形參指標ab就分別指向了陣列ab!

a[0] =.....這是通過指標a間接往陣列a賦值!

b = a;//b指標本來指向陣列b ,但這句邊變成把b指標指向a指標所指向的空間,也就是b指標也指向了陣列a,而不是內容copy!

this is b

(空)第二句是空那是因為b陣列從未被賦值,它都是0,0是字串結束符,

C語言指標賦值

1 指標的初始化 指標初始化時,的右運算元必須為記憶體中資料的位址,不可以是變數,也不可以直接用整型位址值 但是int p 0 除外,該語句表示指標為空 此時,p只是表示定義的是個指標變數,並沒有間接取值的意思。例如 int a 25 int ptr a int b 10 int point b i...

C語言指標賦值前的指向問題

includeint main 答 以上 執行未出現任何結果,為什麼會出現這樣結果呢?因為,int k 僅僅定義了乙個指標變數並未給該指標乙個明確的指向,但是 k 100 該語句將100賦值給k所指的記憶體,但計算機並不知道k指向那個記憶體,即計算機不知道將100儲存在那個記憶體中,所以不會得到任何...

C語言 指標的賦值方式

指標的賦值運算是向指標變數是向指標變數送乙個位址的值,向乙個指標變數賦值的時候,送的值必須是位址常量或指標變數,不能是普通的整數 0除外 1 double x 15,px px x 2 float a,px py px a py px 3 把乙個已有值的指標變數賦給具有相同資料型別的指標 int a...