链表中的“p->next”
p->next到底是指p的下一个节点还是p的指针域呢?p是一个指针,那么p->next也应该是一个指针,即p->next应该是一个地址,因此p->next其实是p指向的节点的指针域(next域),所以p->next还是属于当前节点的,只不过它是下一个节点的地址罢了。所以如果函数返回“p->next”,那么函数的类型应为指针函数。
如何让VS2013进行C编程的时候使用基本库函数不会得到警告
把VS项目创建中的安全周期检查关闭就可以任意使用所谓不安全的C语言函数了,VS2013也就基本和VC++6一样方便了。
如何解释putchar(m%10+‘0‘)
m是一个整数时,m%10是对10取余,结果为0-9。由于0-9是一个整数值来的,想在屏幕上输出的话要转换为ascii码。‘0‘为0的ascii码,加上0-9就是为0-9的ascii码。
这个句子的结果是把m%10的结果用ascii码输出在屏幕上。
循环队列头尾指针相等
循环队列中,由于入队时尾指针向前追赶头指针;出队时头指针向前追赶尾指针,造成队空和队满时头尾指针均相等。
赋值表达式不能作为赋值时的左值
函数参数的求值顺序
函数参数总是自右往左求值的。如:
int i=3; printf("%d,%d,%d",i,++i,++i);
很多人认为是3,4,5,其实应该是5,5,4。
操作系统内存管理中的堆栈和数据结构中的区别
栈(操作系统):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈
栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放
堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
堆则是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些
堆(数据结构):堆可以被看成是一棵树,如:堆排序
栈(数据结构):一种后进先出的数据结构
时间: 2024-10-19 15:00:49