unsigned int aa = 6;
int b = -20;
if((aa+b) > 6)
printf("kao");else
printf("bu kao!");
是当表达式中存在有符号类型和无符号类型时所有的操作数都自动转换为无符号类型。
/* 不反转链表的情况下,反向打印链表元素 */
void reverse_print(struct linknode *head){
if(head->next != NULL)
reverse_print(head->next);
printf("%d ", head->da
}
-----
/* 遍历原链表,逐个取出链表元素并插入新链表的表头,
从而形成反转链表
*/
void reverse(struct linknode **head)
{
struct linknode *newhead, *p, *temp;
if(*head == NULL || (*head)->next == NULL)
return;
newhead = NULL;
p = (*head); //p初始为头
while(p)
{
temp = p->next;//先保存下一个地址
p->next = newhead;//newhead不断作为next的右值,并且不断更新为p所指
newhead = p;//并且不断更新为p所指向的地址
p = temp; //p不断移动下一个位置,通过之前用tmp保存的next指针地址
}
*head = newhead;
}
p:慢慢向后移动;
tmp:每次都比p移动到最后位置
new每次比p慢一个位置,先作为右值赋值给->next,再作为左值跟上p的脚步(指向p的位置,然后p再移向tmp的位置,下个循环则tmp移动到p->next的位置)
http://wzw19191.blog.163.com/blog/static/1311354702009926105418420/
---
如何判断大端小端:
big-endian和little-endian格式。在小端模式中,低位字节放在低地址,高位字节放在高地址;在大端模式中,低位字节放在高地址,高位字节放在低地址。
在C语言中,不同于结构体,共用体(联合体)中的几种不同类型的变量存放在同一段内存单元中。利用这一特点,可以用联合体变量判断ARM或x86环境下,存储系统是是大端还是小端模式。
#include "stdio.h"
int main()
{
}
说明:
1
2
3
4
http://blog.sina.com.cn/huashibuliao
回调函数:
回调成员函数应该注意什么:
调试的时候如何查看堆栈信息:bt,等gdb调试技巧
树的深度遍历:代码实现,注意你的代码风格
堆排序:
图的遍历方法:深度、广度
发布版与bug版的区别:1.调试信息 2.代码级别的优化
下列代码有错误吗:getMemory(char *p){ p = (char*)malloc(100);} main(){ char * p = NULL; getMemory(p); strcpy(p,"hello");}
有,最主要一点是:p并没有被分配到空间,因为这属于指针拷贝;我们应该使用**双指针作为形参才ok.
二分排序
main之前之后执行什么
归并排序、
智力题、
江南雨烟、linfengtengfei、开源项目的研究、
矩阵等
delete[];会逐个调用每个元素的析构函数。 delete new malloc free的区别
进程与线程的区别
什么是多态
打牢基础,基础基础,练习不能放过,每一个都不能,身在小地方,牛逼了也是一般,想想在大地方还有很多像以上2位大神在奋斗着,得慢慢追啊。
对你的公司产品了解多少
会使用什么网络模型?采用什么样的机制
数据库建立索引的优点缺点:1.查找速度提高 2.数据更新则耗时