初始C语言(3)
1:操作符
1.1:算术操作符
1.2:移位操作符
1.3:位操作符
1.4:赋值操作符
1.5:单目操作符
1.6:关系操作符
1.7:逻辑操作符
1.8:条件操作符
1.9:逗号表达式
1.10:下标引用,函数调用和结构成员
2:常见关键字
2.1:关键字 typedef
2.2:关键字static
1:操作符:
1.1:算术操作符
+ - * / %
1.2:移位操作符
>> <<
1.3:位操作符
& ^ |
1.4:赋值操作符
= += -= /= &= ^= != >>= <<=
1.5:单目操作符
! 逻辑反操作
- 负值
+ 正值
& 取地址
sizeof 操作数的类型长度(以字节为单位)
~ 对一个数的二进制按位取反
-- 前置,后置--
++ 前置,后置++
* 间接访问操作符(解引用操作符)
(类型) 强制类型转换
1.6:关系操作符
>
>=
<
<=
!= 用于测试“不相等”
== 用于测试“相等”
1.7:逻辑操作符
&& 逻辑与
|| 逻辑或
1.8:条件操作符
exp1 ? exp2 : exp3
1.9:逗号表达式
exp1,exp2,exp3,...expN
1.10:下标引用,函数调用和结构成员
[ ] ( ) . ->
2:常见关键字:
auto break case char const continue default do double elseenum extrern float goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
2.1:关键字static
//将unsigned int 重命名为uint_32, 所以uint_32也是一个类型名
typedef unsigned int uint_32;
int main()
{
//观察num1和num2,这两个变量的类型是一样的
unsigned int num1 = 0;
uint_32 num2 = 0;
return 0; }
2.2:关键字static
1. 修饰局部变量-称为静态局部变量
//代码1
#include <stdio.h>
void test()
{
int i = 0;
i++;
printf("%d ", i);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0; }
//代码2
#include <stdio.h>
void test()
{
//static修饰局部变量
static int i = 0;
i++;
printf("%d ", i);
}
int main()
{
int i = 0;
for(i=0; i<10; i++)
{
test();
}
return 0; }
2.修饰全局变量
//代码1
//add.c
int g_val = 2018;
//test.c
int main()
{
printf("%d\n", g_val);
return 0; }
//代码2
//add.c
static int g_val = 2018;
//test.c
int main()
{
printf("%d\n", g_val);
return 0; }
//代码1
//add.c
int Add(int x, int y) {
return c+y; }
//test.c
int main()
{
printf("%d\n", Add(2, 3));
return 0;
//代码2
//add.c
static int Add(int x, int y) {
return c+y; }
//test.c
int main()
{
printf("%d\n", Add(2, 3));
return 0; }