第10章 常见关键字

关键字不能与变量名冲突

auto(自动)

#include

int main()

{

int a=10;//局部变量---a自动创建,自动销毁的,也叫自动变量,隐藏掉了auto,

本来是auto int a=10;通常省略

return 0;

}

break

循环里面可以停止循环,

case

char 字符类型

const 常变量

continue 继续 循环里的

default 默认

do do while循环

double double类型

else if else 语句

enum 枚举

extern 引入外部符号

float 单精度浮点数

for for循环

goto goto 语句

int 整型

long 长整型

register 寄存器

计算机要存储数据可以存在:硬盘,内存,高速缓存,寄存器

访问速度依次变快,空间越来越小,CPU中央处理器-首先从内存拿数据

register int a=10;//建议a定义为寄存器变量,不是最终结果,编译器自己判断

return 返回

short 短整型

signed

int a=-2;

int定义的变量是有符号的

int其实为signed int;只是把signed省略掉了,

unsigned int num=0;//num为无符号数,一个数字如果没有符号位,那他就不存在正负之分,这个数字永远是正数,即使放一个负数,num还是正数

sizeof 计算大小

static静态

struct结构体关键字

switch switch case语句

typedef 类型定义

union联合体或共用体

unsigned无符号

void 无,空

volatile--用得少且难

typedf 类型定义(类型重定义)

typedf unsigned int u int //把unsigned int重新取了个名字u int 完全等价

unsigned int num1=20;

u int num2=2;

num1与num2完全一样

关键字static

用来修饰变量和函数

1.修饰局部变量-静态局部变量

2.修饰全局变量-静态全局变量

3.修饰函数-静态函数

#include

viod test()

{

int a=1;//局部变量

a++;

printf("a=%d\n",a);打印222222,每次打印完后被销毁,生命周期

}

int main()

{

int i =0;

while (i

{

test();//调用test函数,a=2,

i++;

return 0;

}

结果是5个2

加入static

修饰局部变量,局部变量生命周期变长

#include

viod test()

{

static int a=1;//a是一个静态局部变量

a++;

printf("a=%d\n",a);//打印23456,每次打印之后保存下来,不被销毁

}

int main()

{

int i =0;

while (i

{

test();//调用test函数,a=2,

i++;

return 0;

}

结果是23456

static 修饰全局变量

第一个源文件

int g_val=2020;//在这个源文件里定义一个全局变量

另一个源文件

int main()

{

extern int g_val;声明一下另一个源文件的全局变量//extern--声明外部符号的

printf("%d\n",g_val);

return 0;

}

结果是g_val2020//全局变量,只要在其他源文件中声明,可以调用到

若加上static

第一个源文件

static g_val=2020;//全局变量加上static

结果会发生错误,无法解析外部符号

static修饰时,无法在外部使用,改变了作用域,让静态的全局变量只能在自己所在的源文件内部使用,出了源文件就无法再使用

static修饰函数

在第一个源文件定义一个函数

int Add (int x,int y)

{

int z =x+y;

return z;

}

第二源文件//声明外部函数

extern int Add(int,int);

int main()

{

int a=10;

int b=20;

int sum= Add(a,b)//引用函数

printf("sum=%d\n",sum);

}

return 0;

结果是30,

加入static

static int Add (int x,int y)

{

int z =x+y;

return z;

}

后果是无法解析外部符号,static修饰函数,改变了函数的链接属性,普通正常的函数是有外部链接属性的,static修饰后就变成了内部链接属性

#define定义常量和宏

#include

#define MAX100;// #define定义标识符常量 ,没有=

int main()

{

int a=max;

return 0;

}

#define定义宏---带参数

#include

int MAX(int x,int y)

{

if (x>y)

return x;

else

return y;

}

int main()

{

int a=10;

int b=20;

//函数

int max=MAX(a,b);

printf("max=%d\n",MAX);

//宏的方式

max=MAX(a,b);

printf("max=%d\n",MAX);

return 0;

}

宏的方式

#include

#define MAX(x,y) (X>Y?:Y)

int main()

{

int a=10;

int b=20;

//函数

int max=MAX(a,b);

printf("max=%d\n",MAX);

//宏的方式

max=MAX(a,b); //max=(a>b?a:b)

printf("max=%d\n",MAX);

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值