c*******9 发帖数: 6411 | 1 【 以下文字转载自 JobHunting 讨论区 】
发信人: WangYuYan (语笑嫣然), 信区: JobHunting
标 题: c++ 问题
发信站: BBS 未名空间站 (Tue Jan 4 12:36:07 2011, 美东)
main()
{
char *c1 = "abc";
char c2[] = "abc";
char *c3 = ( char* )malloc(3);
c3 = "abc";
printf("%d %d %s\n",&c1,c1,c1);
printf("%d %d %s\n",&c2,c2,c2);
printf("%d %d %s\n",&c3,c3,c3);
getchar();
}
运行结果
2293628 4199056 abc
2293624 2293624 abc
2293620 4199056 abc
看运行结果
为什么c2所指的地址,
和c2 自己的地址是一样,
我运行了,也是这样的。 | N***m 发帖数: 4460 | 2 c2不就是普通树祖嘛?为啥要不一样
【在 c*******9 的大作中提到】 : 【 以下文字转载自 JobHunting 讨论区 】 : 发信人: WangYuYan (语笑嫣然), 信区: JobHunting : 标 题: c++ 问题 : 发信站: BBS 未名空间站 (Tue Jan 4 12:36:07 2011, 美东) : main() : { : char *c1 = "abc"; : char c2[] = "abc"; : char *c3 = ( char* )malloc(3); : c3 = "abc";
| X****r 发帖数: 3557 | 3 "c2" has type "char[4]".
Expression "c2" is automatically converted to type
"char *", which is the address to its first element 'a'.
Expression "&c2" has type "char (*)[4]", which is the
address of the start of the array, same as above.
【在 c*******9 的大作中提到】 : 【 以下文字转载自 JobHunting 讨论区 】 : 发信人: WangYuYan (语笑嫣然), 信区: JobHunting : 标 题: c++ 问题 : 发信站: BBS 未名空间站 (Tue Jan 4 12:36:07 2011, 美东) : main() : { : char *c1 = "abc"; : char c2[] = "abc"; : char *c3 = ( char* )malloc(3); : c3 = "abc";
|
|