1
這看起來應該很容易,但我花了太多時間在它上面。希望有人能幫助。更改指針數組的內容
char *labels[] = { "apple", "orange" }; // each items inside label is string literal. We can't change them-
看看下面的
char a[]="hi";
char b[]="hello";
char *name[]={a,b};//each item inside name is not string literal rite??
*name="bye";
puts(a);
我想輸出將是bye
,因爲我改變了使用*name="bye"
中的a[]
內容,但輸出仍是hi
。爲什麼?
當我調試時,我發現你所說的正在發生。但是'* name'的地址是'a []'rite?對'* name'的任何修改都必須反映在'a []'rite ?.不,我沒有得到任何警告。 – intex0075 2012-01-01 05:26:49
編號'*名稱'仍然是一個指針,指向'a'。 '* name'改變指針指向的內容。 – Flexo 2012-01-01 05:27:54
所以,現在*名稱已經改變,指向其他的東西,尋找乙,並期待它是「你好」不是真的有效,對吧? – user973572 2012-01-01 05:30:59