2014-03-29 18 views

回答

5

一個指向數組一個數組,你無處可把你的角色。

這就像有一個受氣包沒有房子,這並不意味着你有地方接受你的客人。

要具備上述的工作,你應該

char ptr[10]; // This is where you have space, specifically stack space 
char (*this_is_a_pointer_to_array)[10]; // This only holds space to keep an address to an array 
this_is_a_pointer_to_array = &ptr; 
scanf("%s",ptr); 

雖然你並不真正需要的指針數組上面的情況。

一個指向數組只持有必要儘可能多的空間的地址堅持一個數組,就沒有空間來存儲任何東西比其他地址。如果你可怕地規避了類型轉換機制,你可能會使用這個空間來存儲一些字符而不是地址,但這是針對我身體的每個道德纖維,並可能反對每種類型轉換規則。

+2

+1,很好的解釋,但是你的意思是'this_is_a_pointer_to_array = &ptr;'(注意符號;) –

+0

和號不是數組所需要的,因爲數組本身就是一個地址。 –

+0

@ user3475381,從兼容的指針類型賦值(無&) –

1

ptr不是一個指向char的指針,而是一個指向10個數組的指針char s。