操作符
算数操作符:+ - * / %
移位操作符:>> <<
位操作符:&--按位与 ^--按位异或 |--按位或
赋值操作符:= += -= *= /= &= ^= |= >>= <<=
单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
逗号表达式
exp1, exp2, exp3, …expN
下标引用、函数调用和结构成员
[] () . ->
关键字
关键字为c语言提供的,不能自己创建关键字
关键字不能做变量名
变量名不能是关键字
常见的关键字:auto break case char const continue default do double else enum extern float for goto if int long register return short signedsizeof static struct switch typedef union unsigned void volatile
关键字 typedef---类型重定义
关键字static:修饰局部变量的生命周期,本质上 是改变了变量的储存类型
1. 修饰局部变量-称为静态局部变量
2. 修饰全局变量-称为静态全局变量
3. 修饰函数-称为静态函数
. #define 定义常量和宏
练习代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//int main()
//{
// //int a = 9 / 2;
// //float a = 9 / 2.0;
// int a = 9 % 2;//%-取模(余数)
// printf("%d\n", a);
//
// return 0;
//}
//int main()
//{
// int a = 2;
// int b = a << 1;//左移操作符---移动的是二进制位
//
// printf("%d\n", b);
//
// return 0;
//}
//int main()
//{
// int a = 10;
// //0表示假,非0就是真
// printf("%d\n", !a);
//
// return 0;
//}
//int main()
//{
// int arr[10] = { 0 };
// printf("%d\n", sizeof(arr));//计算的是数组的总大小,单位是字节
// printf("%d\n", sizeof(arr[0]));
// int sz = sizeof(arr) / sizeof(arr[0]);
// printf("%d\n", sz);
// return 0;
//}
//int main()
//{
// int a = 0;
//
// printf("%d\n", ~a);
// return 0;
//}
//int main()
//{
// //int a = 10;
// //int b = a++;//后置++表示先使用再++,所以优先给b赋值为a=10,再把a+1
//
// int a = 10;
// int b = ++a;//前置++表示先++后使用,++a的结果会把上一步的int a=10覆盖
//
// printf("%d\n", a);
// printf("%d\n", b);
//
// return 0;
//}
//int main()
//{
// int a = (int)3.14;//强制类型转换
//
// printf("%d\n", a);
// return 0;
//
//}
//typedef unsigned int u_int;//用typedef重新定义关键字
//int main()
//{
// unsigned int num = 100;
// u_int num2 = 100;//和上一步为同一类型
//
// return 0;
//}
//void test()
//{
// int a = 1;
// a++;
// printf("%d\n", a);
//}
//int main()
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
// return 0;//结果为10个2
//}
//void test()
//{
// static int a = 1;//static修饰是表示为静态环境,不销毁上一步结果
// a++;
// printf("%d\n", a);
//}
//int main()
//{
// int i = 0;
// while (i < 10)
// {
// test();
// i++;
// }
// return 0;//结果为2-11
//}
//extern int g_val; //exter 声明外部符号的
//
//int main()
//{
// printf("%d\n", g_val);
//
// return 0;
//}
//#define MAX 1000
#define ADD(x, y) ((x)+(y))
int main()
{
int sum = ADD(2, 3);
printf("sum = %d\n", sum);
}