关于C/C++的几个小问题,高手请进
1.关于子函数中的变量的问题:
eg:
a. char* getstr1(void)
{
char* s = "abcdef";
return s;
}
b. char* getstr2(void)
{
char s[] = {'a','b','c','d','e','f'};
return s;
}
问:这两种写函数的形式我在机子上都试过,现在不明白的是,a是对的,b不对。都说子函数中的变量是存贮在堆栈中的,在该函数调用完后,应该是自动消失,但为什么a(指针形式)就对呢?由此想到另外一个在C++中的问题:类abc的成员函数是这样写的:
abc abc:: operator + (const abc & m) const
{
abc temp;
...
return abc;
}
我同样不是很明白为什么这样可以,要是这样可以的话,那返回的temp也是局部变量啊,函数执行完后不就消失了么?为什么还能用?
请高手赐教!!!