09 2010 档案
摘要:单链表的逆置的实现:(1)算法structlink{intdata;structlink*next;};linkreverse(linkx){if(NULL==x)returnNULL;linkt=NULL;linkr=NULL,y=x;//(0)while(y!=NULL){t=y->next;//(1)y->next=r;//(2)r=y;//(3)y=t;//(4)}return...
阅读全文
摘要:如果函数返回值是一个对象,要考虑 return 语句的效率。例如 return String(s1 + s2); 这是临时对象的语法,表示“创建一个临时对象并返回它” 。不要以为它与“先创建一个局部对象 temp 并返回它的结果”是等价的,如 String temp(s1 + s2); return temp; 实质不然,上述代码将发生三件事。首先...
阅读全文
摘要:格式:类型标识符 &函数名(形参列表及类型说明){ //函数体 }好处:在内存中不产生被返回值的副本;(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtime error! 注意事项:(1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁...
阅读全文
摘要:看看下面的程序的输出: #include <stdio.h> char *returnStr() { char *p="hello world!"; return p; } int main() { char *str; str=returnStr(); printf("%s\n", str); return 0; } 这个没有任何问题,因为"hello world!"是一...
阅读全文