#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];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是字串結束符,
這是兩個已開闢空間的了陣列
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...