初始C语言
c是一门高级语言。
菜鸟的我用的编辑器是vs2019,比较适合
c程序或整个项目中,有且只有一个main文件,
编辑器运行的过程,先预处理,编译,汇编,后链接。
后续,在程序环境和预处理那章
计算机中的单位,
32位系统,
4个字节 = 32个比特位
bit,最小的单位 1 byte = 8 bit 1 kb = 1024 byte 1 mb = 1024 kb 1 gb = 1024 mb 1 tb = 1024 gb 1 pb = 1024 tb //无所谓大小写
常量和变量,字面量
常量mood = sad;mood = happy;字面量和标量。
学到4种
-
字面常量
-
const修饰的常量
-
#define定义的标识符常量
-
枚举常量 关键字 - enum
-
字面常量
—— 10 20这样的。 -
const修饰的常量
int main()
{
const int b = 10;
//int arr[b] = {0};//err
//用const修饰,也不行也不能改变b是个变量的本质。const修饰后的变量是一个常变量,本质上还是一个变量。
//int arr[b]={0}; 在C99标准中,这种数组叫做变长数组。但vs2019不行
return 0;
}
- #define修饰的标识符常量
#define MAX 100 //预处理指令相关 //把#define的定义的常量,放到main()函数中也可以。
- enum关键字 - 枚举常量
enum Sex
{
MALE = 3,//
FAMALE,
SECRET
};
int main()
{
enum Sex u = MALE;
printf("%dn",MALE);//0
//若定义时MALE = 3;
printf("%dn",MALE);//3
return 0;
}//3. 把enum 的定义放到 main()函数中也可以。
转义字符
编译器的支持度不同。
t 水平制表符 a 警告字符,蜂鸣 b 退格符 f 进纸符 n 换行 r 回车 v 垂直制表符
操作符sizeof()
int s = 10;
printf("%dn",sizeof(s=s+1));
prinff("%dn",s);
//不会该变s的值。
位移操作符;
<<左移操作符:是将左边去掉,右边补0;
>>右移,操作符的规则分为两种,
只是C语言中。
- 算数右移。
右边丢弃,左边补原符号为。
-
逻辑右移
右移丢弃,左边补0;
内存中;以补码的形式作为存储方式。
位操作符signed int 0开头的是正的,1开头是负的。
& //按位与 只有都是1的时候才会是1. | //按位或 有正为正。 ^ //按位异或 相同为0,相异为1 0^a= a a^a = 0 //操作数必须是整数
指针变量占据的内存:
4个字节或者是8个字节。32位/64位,win系统中
逻辑操作符
&& 两条件都要true,为true || 两者满足其一 ! 非
&&左边的的值为假的时候,右边的表达式,就不需要算了。
- 典型题目
int a =(++a)+(++a)+(++a);//计算s的大小。
计算顺序的改变会,改变计算的结果,就像(++i)。vs的编译器和linux计算顺序不同。
F10 —>右击 反汇编,在监视窗口中查看反汇编的寄存器。
操作符的属性
表达式的求值结果:
1.操作符的优先级
2. 操作符的结合性
3. 是否控制求值顺序
隐式计算
一种:short,char,按照int类型提升。
另一种:上面之外的数据类型,之间计算时,需要向高精度的类型提升。
操作符之间的优先级表
……
算数操作符的优先级大于赋值操作符。



