链表删除
头删
free函数:free(void 空间名):空间必须是malloc申请的空间,作用是放弃malloc申请的空间的占有权。
头删步骤:
1.P指针变量指向首节点
2.断开链表
head->next=p->next;
3.释放p所在节点
free(p);
位运算
&:一假则假
|:一真则真
~:非
^:(异或)同则0,异则1,可用于加密
<<:(左移) 数值左移位数:int a=0x33,a<<1;由0011 0011变为0 0110 0110 //左移一位相当于乘以 2
>>:(右移)数值右移位数: 右移一位数后,数字消失,前方补充数值,补充时看数据类型,有符号则最高位补符号位,无符号数据则补0.
软件控制硬件---编程->cpu->寄存器(位)->硬件
在C语言上通过位运算来控制寄存器
预处理
.c->可执行文件的过程
预处理:gcc -E file.c -o file.i
编译:gcc -S file.c -o file.s
汇编:gcc -c file.c -o file.o
宏定义:
#define 宏名 宏值 表示定义了一个 宏,出现宏名的地方都会被宏值替换(打印的值和宏名相同时不会被替换) 宏名一般大写
作用为:在代码中用到宏值的地方都可以用宏名替代
预处理阶段:进行文本的原样替换
结束宏定义:#undef 宏名
宏的副作用:可能干扰计算顺序,如定义算式时,可能导致算式中的运算符号的优先级与预期的不同。
宏函数
定义简单的功能 #define 带参数的符号 具体功能
头文件" ",与<>的区别
<>//到系统默认的路径下找对应的文件----/usr/include
""//在默认地址找,若没找到,则到系统指定目录去找
条件编译:
1.#if 0
......
#endif //起注释作用,或者条件判断
2.防止重复定义头文件 //另开一个为.h结尾的以头文件命名的文件
#ifndef 大写头文件名
#define 大写头文件名
头文件功能
#endif
错题集
4.其中10与4是整型,所以x为2,又因为x为float型,所以显示2.0
5.^的优先级小于<<
9.==的优先级大于--与++,注意先用后加以及先加后用
13.对于数组来说,输入不用取地址,因为数组本身就是地址
22.*p+1为c,c值加1即为d