39:Printf的%#X的话,输出的变量前面会自动加上0X
scanf如果包含非输入控制符,那么非输入控制符原样输入。所以在scanf中尽量不要用非输入控制符,尤其是不要使用\n。要是使用了\n的话,输入的时候在输入完数据之后必须原样输入一个\n,按回车没用。
42:/ (除),当两个整数使用这个运算符的时候,结果是整数,小数部分将会被舍弃,将参与运算的两个数中有一个是浮点数或者两个都是浮点数的时候,结果是浮点数。
%(取余):不能对浮点数使用这个运算符。取余的运算对象必须是整数,余数的符号与被除数相同。也就是%左边的数相同。
C语言中是有大于等于,小于等于的,>=,<=,你以前大于等于是用的逻辑与把大于和等于结合起来的。但是1<= a <=10,在C语言中是不对的,这个范围要用&&写,
运算符的优先级:算数 > 关系 > 逻辑 > 赋值
C语言对真假的处理:非零即为真。
&&:左边表达式为假,右边的表达式不执行。
||:左边表达式为真,右边表达式不执行。
Float和double都不能保证可以精确的存储一个小数,因此循环中更新的变量不能定义成浮点型。
++i和i++单独成一个语句,不要把它作为一个完整复合语句的一部分来使用。
Break:break如果用于循环是用来终止循环,break如果用于switch,则是用于终止switch,break不能用于if,除非if属于循环内部的一个子句。在多层循环中,break终止的只是距离他最近的循环。
Continue:用于跳过本次循环余下的语句,转去判断是否需要执行下次循环。
对于void类型的函数,里面也可以写return,但是后面不能跟表达式,只能写一个return;
Return的作用是终止函数,return后面的所有语句不再执行。
在所有函数外部定义的变量叫全局变量,全局变量的使用范围是从定义位置开始到整个程序结束,
在一个函数内部定义或者复合语句内部定义的变量或者函数的形参,都统称为局部变量。局部变量的使用范围:只能在本函数内部使用。
在一个函数内部,如果定义的局部变量的名字和全局变量名字一样,局部会屏蔽掉全局变量。
*p以p的内容为地址的变量。指针就是地址,地址就是指针,地址是内存单元的编号。
指针和指针变量是两个不同的概念,通常我们叙述时会把指针变量简称为指针,实际他们含义不一样。
指针变量不能相加,不能相乘,不能相除,如果两个指针变量指向的是同一块连续空间中的不同存储单元,则这两个指针变量才可以相减。
传统数组的缺点:1数组长度必须事先制定,且必须是常整数,不能是变量,2传统形式定义的数组,该数组的内存程序员无法手动释放。在一个函数运行期间,系统为该函数中数组所分配的空间会一直存在,直到该函数运行完毕时,数组的空间才会释放。
传统方式定义的数组不能跨函数使用。
定义的同时可以整体赋值,如果定义完之后则只能单个的赋值。
66.6在C语言中默认是double类型,如果希望一个实数是float类型,则在后面加f或者F,写成66.6f或者66.6F。
对字符串变量进行赋值的时候,不能直接用=,应该用函数strcpy。
枚举变量:把一个事物所有可能的取值一一列举出来。
C语言规定8进制前要加0(是0不是字母O),十六进制前要加0X,十进制前什么都不加。
在汇编语言中,在数字后面加BODH,分别表示 281016进制,
首结点:存放第一个有效数据的结点
尾结点:存放最后一个有效数据的结点
头结点:头结点的数据类型和首结点的数据类型是一样的,头结点是首结点前面的那个结点,头结点不存放有效数据,设置头结点的目的是为了方便对链表的操作。
头指针:存放头结点地址的指针变量。