已采纳回答 / 流浪_老
这是链表的知识啊 else p2->next = p1; 在这句代码里面P2->next 指向了P1 然后把P1的值付给了P2 这个时候的 P2是另外一个内存空间 下一次用是不会覆盖上一次的地方的 P2最后会指向 最后一个节点 只需要找到头指针 根据链表的性质就可以输出整个链表了
2015-12-03
已采纳回答 / AAnonymous
malloc是分配内存(type*)malloc(size);分配size个字节的内存,因为malloc只能分配多少字节的内存,不能指定分配内存存什么类型,所以强转为某类型(type*)其实这里C++写相当于 p1=p2=new weapon();
2015-09-03
已采纳回答 / 封不羁
为了下一次输入时能够得到这个链表的尾结点,然后将这次的输入生成的结点链接到链表的最后成为新的尾结点,以此类推。如果不能很好理解的话,可以自己动手画一张图(下面的图仅是参考),会清晰很多: )<...图片...>
2015-08-14
已采纳回答 / 封不羁
如果你学过java或者C++,对比他们的容器类,你就会知道,这些非常好用的容器类的原型就是链表,尤其是动态链表。而这些容器类的应用,几乎所有的C++或者java项目都会用到他们: )
2015-08-09
已采纳回答 / onemoo
C语言运算符有优先级和结合性,但是参与运算的操作数的求值顺序并没有规定。所以这两个代码是有问题的。第一个例子中:return 后面的 n-- 的值肯定是n,但是n自减在这个表达式中是什么时候发生的并不确定(在return语句后肯定减1了,但也没意义了)第二个例子:step的参数--n的值肯定是n-1,而且在函数调用后n的值也肯定是减1了,但是由于操作数的求值顺序未定,所以不能保证肯定先调用step函数。这两个代码的行为都是未定义的,能出运算结果不一定代表这就是“正确的”结果。
2015-08-05
已采纳回答 / onemoo
标准对此没有规定,完全由编译器自己实现。自己写代码时不要依赖这种“未指定”的行为。想要知道你使用的编译器是怎样实现的,就用gdb打印出数据结构看一下吧。
2015-08-01
已采纳回答 / 堕天使008
unsigned 并不是 一个类型, unsigned 这个关键词不能单独出现, unsigned long或者unsigned int 才是一个类型,指的是 无符号的long 类型,虽然长度没变依旧是long 的长度,但数据的最大值是原来的2倍。单独一个 unsigned 该表示什么类型? “无符号的” 这个词怎么算类型, 不限制长度的无符号数值吗?
2015-07-24