刚开始是关于操作符的下面是一些讲到的操作符
! 逻辑操作符 &取地址操作符
- + 负数 正数操作符 sizeof操作数的类型长度操作符 printf("%",sizeof());
a++ 是先使用原来的值,再进行++或-- //前置
++a是先计算后使用
~ 对一个数的二进制按位反操作符
int a =0; 4个字节
举例0为 0 000000000000000000000000000000 0
~a = -1; 1 000000000000000000000000000000 1
首位1为- 0为+
整数(正数):原码,反码,补码一致
整数(负数):在内存中以补码形式存在
-1
10000000000000000000000000000001
原码:10000000000000000000000000000001
反码:11111111111111111111111111111110 较比原码符号位第一位不变其他位改变
补码:11111111111111111111111111111111 较比反码基础上加1
所有的正数按位取反的值是其本身+1的负数
所有的负数按位取反的值是其本身+1的绝对值
0按位取反得到是-1
int a =(int)3.14 强制转换
//关系操作符
>, >= , <= , != , ==
//逻辑操作符
&& ||
//条件操作符
exp1 ? exp2 : exp3;
类似如此
int a = 3;
int b = 7;
int max = 0;
if (a > b)
{ max = a; }
else
{ max = b;}
max = a > b ? a : b;
逗号表达式
//exp1, exp2, exp3...expN;
int a = 3; int b = 7; int c = 0;
int d = (a = b - c, b = c + a, c = a - b); 结果为最后一个表达式的结果
关键字
1.定义:C语言提供的,不能自己创建的,为关键字。比如 int, return;
2.不能把关键字作为变量名
常见的关键字:
auto:自动变量关键字
{
int a = 1; 变量a,在进大括号的时候,变量创建 出大括号的时候,变量自动销毁
}
接下来是循环判断关键词
break 循环程序中,跳出循环关键字,
while while循环
for
case 选择语句关键词
continue 循环关键词
if
else
switch( 我不怎么清楚
default (我不怎么清楚
do-while (我不怎么清楚
goto 跳转语句 (我不怎么清楚
下面是变量类型关键字
//char, int, float, double, long, short,
signed 有符号类型 -10,+20 int 00000000000000000000000000000000 -2^31-0~2^31
unsigned 无符号类型 int 00000000000000000000000000000000 0~2^32 //%u
const 常变量关键字
enum; 枚举关键字
register; 寄存器变量关键词
register float a = 123;
static ;静态变量关键字
void test()
{ static int a = 1;
a++;
printf("%d\n", a);}
int main()
{ int i = 0;
while (i<10) {
test();
i++; }
return 0;} static使其保存了起来(自己的理解)
static 修饰局部变量的时候,局部变量改变自身生命周期,变成了与全局变量生命周期一致
static 修饰全局变量,使得全局变量只能在自己所在的源文件(.c)使用
改变外部链接属性,使得其无法在其他文件中使用。
static 修饰函数,使得函数只能在自己所在的源文件(.c)使用
extern 外部变量、函数申明符号
先定义
[
int gol_a=1;//全局变量
int Add(int x,int y)
{return x=y;}
]
extern int Add(int x, int y);
extern int gol_a;
Add(1, 2);
printf("%d", gol_a); 输出为1
return 0;}
#define 可以定义常量
#define PI 3.14
int main()
{ printf("%f", PI);
return 0;
} 输出PI 3.14
define 可以定义宏
#define PRINTF printf("Hello world!\n")
#define ADD(x,y) ((x)+(y))
int main()
{
PRINTF;
int a = 3*ADD(2, 3); //#define ADD(x,y) x+y 若为如此则输出为2*3+3=9
printf("%d\n", a);
return 0;}
输出为15
就到这了