2011-12-13 40 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值的指针。

相关问题