2011-12-13 114 views
2

我只是想知道下面的語句是否是相同的:C++中的「char * p1; p1 = str;」與「char * p1 = str;」是一樣的嗎?

char str[80];  
char *p1; 
p1 = str; 

char str[80];  
char *p1 = str; 

感謝

+5

同樣的方式?語法上,顯然不是。標準/ /語法方面,否(第一個是賦值,第二個是初始化)。從觀察上看,是的。 – GManNickG

+0

您是否注意到行爲上的差異?或者你在尋找其他的差異? –

+0

語法上它們當然是不同的,但我想知道它們是否做同樣的事情。 – fdama

回答

2

是的。在這兩種情況下,都會發生隱式的數組到指針的轉換,指針將被初始化爲數組第一個元素的地址。

+0

太棒了。謝謝。 – fdama

6

是,該聲明是相同的。

+0

哇!減輕快速。謝謝。 – fdama

+0

絕妙的答案! – Meysam

4

是的。

在第一個示例中,將str的值分配給變量p1(char char分配的基本字符)。

在第二個示例中,您將p1聲明爲指向str值的指針。

相關問題