05 2013 档案

摘要:下面是链表反转的代码Node * Reverse_Link(struct Node *&head){ struct Node *p,*p1,*p2; //p为当前点,p1为下一个节点,p2暂存p1的下一个节点。 p=head; p1=head->next; while(p1) { p2 = p1->next;//暂存p1的下一个节点 p1->next = p;//在这一步,p->next将会被替换掉,所以在上一步,先将它缓存起来。 //为下一步交换做准备 p = p1;//将当前节点设置成刚调换的节点。 p1=p2;//将当前节点的下一个节点设置成p1 ... 阅读全文
posted @ 2013-05-19 16:46 randroid 阅读(170) 评论(0) 推荐(0)
摘要:C++指针形参和引用形参的区别测试 阅读全文
posted @ 2013-05-11 16:42 randroid 阅读(311) 评论(0) 推荐(0)
摘要:p=(++j)+(++j)+(++j); 首先,理清什么是右结合原则,还有运算的优先级问题。 根据有结合原则,首先元素的是三个括号中的++j,先从最后一个括号开始,++j这是先自加,后运算,第一次运算后j=6,第二次运算后j=7,第三次运算后j=8. 括号中的表达式都运算完成后,再算两个+号,将三个括号中的结果相加,想想j有可能是三个不同的值吗,这里不是函数,是不会搞什么副本那玩意的,跟(j++)+(j++)+(j++)可以看出j+j+j一样, (++j)+(++j)+(++j)可以简略成j+j+j,亲们要最终要加的是j,而不是什么++,懂不?结果无疑就是3j=24 编程的过程中经常会遇... 阅读全文
posted @ 2013-05-11 16:05 randroid 阅读(1012) 评论(0) 推荐(0)
摘要:系统的位数是确定的,也就是说指针的位数是确定的,那为什么还要确定指针的类型呢?如有char类型的,也有int类型的,还有其他类型的,这是为什么?这主要是为指针运算考虑的,只有附上类型,在指针跳跃的时候,才知道跳多少个字节。 阅读全文
posted @ 2013-05-11 11:49 randroid 阅读(257) 评论(0) 推荐(0)
摘要:Void func1(int a){ a++; cout<<a;}Void func2(int *a){ Int c = *a; Cout<<c;}Void func3(int *&a){ Int *c; C=a //这里大家会不会想,形参接收的是int类型指针实参的引用,而不是实参的值。如果这样理解,是说不过去的,如果函数的原型定义成func3(int &a),形参变成了这样,但在函数中我们还是用操作int变量的方式去操作这个形参,而不是用一个指针变量来接住这个值,再通过*来取值,为什么可以这样,原因是编译器规定的就是这样。虽然操作的方法一样,但总有些 阅读全文
posted @ 2013-05-10 21:36 randroid 阅读(413) 评论(0) 推荐(0)