一、
%s表示的是打印字符串;
%5s表示变量的值保持长度5位,不足5位的在前面以空格补齐;超过5位的则截止到第五位,以字符串的方式打印出来;-----如果字符串是abc,%5s会显示结果为--abc;前面补齐两个空格凑齐5位;
%-5s同样也是表示变量的值保持长度5位,不足5位的在后面以空格补齐;超过5位的则截止到第5位;以字符串的形式打印出来;-----如果字符串是abc,%-5s会显示结果为abc--;在abc的后面补齐两个空格凑齐5位;
%.5s:字符串的长度如果小于等于5,则不变,直接以字符串的形式打印出来即可;如果超过5位,则5位之后的直接舍掉;和保留小数点后5位的意思差不多(只不过小于等于5位时不用加0);
%3d:表示读取三个字符;比如123456\n;代表6个字符----如果用%3d去读取,则读取结果为123;
二、
const修饰常变量----就是说我原本定义变量num,如果前面加上const,则num不能在进行变化;换句话说就是说---我定义const num=12; 下面写代码时就不能再定义 num新的值,例如在const num=12;下面再定义num=20---就会报错;
#define MAX 1000;------define定义标识符常量;用define定义的,下面只要使用MAX就是1000;是不可以被改变的;
enum:枚举常量---类似于定义一个函数,只是如果要使用,范围必须在定义的枚举常量里;
关键字:default(默认)---extern(声明外部符号)---static(静态的)
register(寄存器关键字,用register创建的关键字存到寄存器里面)----计算机里存储位置有网盘2T、硬盘500G、内存8-16G、高速缓存几十mb、寄存器-很小很小;但寄存器的传输速度是最快的,为了追求效率,我们通常把数据存储到寄存器里面;
三、
结构体是一些值的集合,这些值统称为结构体变量,不同于数组的是,结构体变量可以是不同的类型,而数组中的元素必须是相同的类型;
struct 结构体关键字,stu结构体标签,struct stu统称结构体类型,结构体变量不需要进行初始化,只需要定义一下他们的类型即可;特别需要注意:成员变量 {} 后面的分号一定不能省略;结构体变量是{}后面定义的元素;
结构体的访问可以通过 点--- . ;->; 指针 三种类型进行 ;
四、
切记:无论是左移操作符、右移操作符、按位与、按位或这些操作符,都是对内存中的补码进行计算的,存进内存里的是补码,但是如果想要打印出来,则需要把补码转化成原码进行打印;
符号位对于原码、反码、补码都是一样的,我们通常是通过原码进行判断符号位的;
注意:运算是建立在补码的基础之上进行的运算,最终如果需要打印出来,是需要转化成原码进行打印的;也就是说:我们拿到一个数,拿到的是他的原码,需要经过原码-反码-补码-反码-原码;最终打印出来的是原码;而进行的运算是在补码的基础之上进行运算的;
在移位操作符中:算术右移-逻辑右移;
算术右移是指右边丢弃,左边补原符号位,原符号位指的是原码最左边的数字;正数补0,负数补1;
逻辑右移是指右边丢弃,左边统一补0;