原码,反码,补码
负数在内存中存储的时候,存的是二进制的补码,使用的,打印的是原码。
//原码 反码 补码
//直接按照正负 原码的符号位不变, 反码+1
写出的二进制序列 其他位按位取反得到
第一位是符号位
符号
++,--
#include<stdio.h>
int main()
{ int a=10;
int b=a++;//先用后加,int b=++a 现加后用,-同理
printf("a=%d b=%d\n",a,b);
return 0;
}
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制位取反
* 间接访问操作符(解引用操作符)
!= 用于测试不相等
== 用于测试相等
&& 逻辑与
|| 逻辑或
#include<stdio.h>
int main()
{
//真 非0
//假 0
int a=3;
int b=5;
int c=a&&b; //int c=a||b; 逻辑或
printf("c=%d\n",c);
return 0;
}
条件操作符 exp1?exp2:exp3
#include<stdio.h>
int main()
{
int a=10;
int b=20;
int max=0;
max=(a>b?a:b);
printf("max=%d\n",max);
return 0;
下标引用操作符 [] 函数调用操作符()
#include<stdio.h>
int Add(int x,int y)
{
int z=0;
z=x+y;
return z;
}
int main()
{
int a=10;
int b=20;
int sum=Add(a,b);
printf("sum=%d\n",sum);
return 0;
}
static
用来修饰变量和函数
修饰局部变量时,局部变量的生命周期变长
#include<stdio.h>
void test()
{
static int a=1;//a是一个静态的局部变量
a++;
printf("a=%d\n",a);//结果是2,3,4,5
}
int main()
{
int i=0;
while(i<5)
{
test();
i++;
}
return 0;
}
修饰全局变量时,改变了变量的作用域,静态的全局变量只能在自己所在的源文件内部使用,出了源文件无法使用
#include<stdio.h>
int main()
{
extern int g_val;//extern 声明外部符号的
printf("g_val=%d\n",g_val);
return 0;
}
修饰函数时,改变了函数的链接属性。外部链接-->内部链接
#define定义常量和定义宏
#include<stdio.h>
#define MAX(X,Y) (X>Y?X:Y)
int main()
{ int a=10;
int b=20;
int max=0;
max=MAX(a,b);
printf("max=%d\n",max);
return 0;
}
指针
深入理解C语言指针_ZackSock的博客-CSDN博客_深入理解c指针,
这个博主总结的好好
今天状态比昨天好些,希望能保持下去,加油