//操作符,可以不使用括号的
//单目操作符
!//逻辑反操作符
-//负数操作符
+//正数操作符
&//取地址操作符
sizeof//操作数的类型长度操作符
~//对一个数的二进制按位取反操作符
--前置,后置--
++前置,后置++
i++,++i
(类型) 强制类型转
sizeof 操作数的类型长度操作符
int a[10] = { 0 };
printf("%d\n",sizeof(a)); 为40
sizeof(a[0]);//4
sizeof(a) / sizeof(a[0]); 10
//对一个数的二进制按位取反操作符
int a = 0;
printf("%d\n", ~a);
//00000000000000000000000000000000
//11111111111111111111111111111111
-1
10000000000000000000000000000001
整数(正数):原码,反码,补码一致
整数(负数)://在内存中,以补码的形式存在
-1
原码:10000000000000000000000000000001
反码:11111111111111111111111111111110//符号位(第一位)不变,其他位改变
补码:11111111111111111111111111111111//在反码的基础上加1
1.所有的正数按位取反的值是其本身+1的负数
2.所有的负数按位取反的值是其本身+1的绝对值
3.0按位取反得到是-1
int a = 2;
int b = -2;
printf("%d\n", ~a);
printf("%d\n", ~b);
int a = 2.54654;//2
printf("%d", a);
//关系操作符
>, >= , <= , != , ==
//逻辑操作符
&& ||
//条件操作符
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);//结果为最后一个表达式的结果
printf("%d\n", d);
//下标引用操作符
int a[10] = { 1,2,3,4,5,6,7,8,9,10 };
a[5];
关键字
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;//枚举关键字
//extern;//外部变量、函数申明符号
//int a = 1;
//int b = 2;
//int sum = 0;
//sum = Add(a, b);
//printf("%d", sum);
//register;//寄存器变量关键词
//register float a = 123;
//static;//静态变量关键字
//
// return 0;
//}
//extern int Add(int x, int y);
//extern int gol_a;
//
//void test()
//{
// static int a = 1;
// a++;
// printf("%d\n", a);
//}
//
//int main()
//{
//
// int i = 0;
// while (i<10)
// {
// test();
// i++;
// }
// Add(1, 2);
//
// printf("%d", gol_a);
//
// return 0;
//}
//static 修饰局部变量的时候,局部变量改变自身生命周期,变成了与全局变量生命周期一致
//static 修饰全局变量,使得全局变量只能在自己所在的源文件(.c)使用
//改变外部链接属性,使得其无法在其他文件中使用。
//static 修饰函数,使得函数只能在自己所在的源文件(.c)使用
//#define 定义的常量
//#define PI 3.14
//
//int main()
//{
// printf("%f", PI);
//
// return 0;
//}
//define 定义的宏
#define PRINTF printf("Hello world!\n")
#define ADD(x,y) ((x)+(y))
int main()
{
PRINTF;
int a = 3*ADD(2, 3);
printf("%d\n", a);
return 0;
}