Redian新闻
>
问一道C++的题目。 (转载)
avatar
问一道C++的题目。 (转载)# Programming - 葵花宝典
W*o
1
【 以下文字转载自 JobHunting 讨论区 】
发信人: WEKingpro (口味蛇), 信区: JobHunting
标 题: 问一道C++的题目。
发信站: BBS 未名空间站 (Sat Jan 6 21:09:12 2007)
char* getbuf() {
char buff[8]="abcdefg";
return (char*)buff;
}
void main() {
char* b, q;
b = getbuf();
q = *b;
printf("%c\n", q);
}
输出结果中,q除了等于a, 还有可能等于什么?
avatar
k*f
2
buff是在栈里的,退出getbuf,应该就不是有效的

【在 W*******o 的大作中提到】
: 【 以下文字转载自 JobHunting 讨论区 】
: 发信人: WEKingpro (口味蛇), 信区: JobHunting
: 标 题: 问一道C++的题目。
: 发信站: BBS 未名空间站 (Sat Jan 6 21:09:12 2007)
: char* getbuf() {
: char buff[8]="abcdefg";
: return (char*)buff;
: }
: void main() {
: char* b, q;

avatar
W*o
3
it is warned by compiler, but still can get what it suppose to.
avatar
S*t
4
话糙理不草
avatar
r*g
5
buff是函数内局部变量,返回时分配的空间已被系统收回。
你返回的内容没有变只是因为还没有覆盖而已。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。