自学C语言(9)关键字static auto break extern register

 文章前言:
今天学习了解了下关键字,分享下学习是的理解与心得吧

8ebe5e1d75cb401dac450219f52a46e9.jpg

好耶!


文章目录

一.关键字

(1)调用局部变量

使用static 修饰局部变量 生命周期延长了!

(2)extern 全局变量

static修饰全局变量!改变了变量的作用域

(3)static修饰函数

总结


一.关键字

关键字
名称作用
auto自动

int a=10;=auto int a=10(隐藏auto)

a是局部变量 局部变量前面都会有个auto

也叫自动变量  出了范围自动销毁

break

跳出循环

停止循环

在循环里和Switch语句里使用
extern引用引入外部符号
register寄存器

计算机存储数据 寄存器读取速度最高

放寄存器里=register int a=6(建议把a定义寄存器变量)

sighed有符号数

int a=10;

a=-2; int 定义的变量是有符号的

int=sighed int 只是把sighed省略掉了

unsighed无符号数字

unsighed int num=0;如果一个数字没有符号位的话那它就不存在正数之分,永远都是正数

如果定义num=-1 那它任然是一个正数 因为无符号

struct结构体关键字

如果要定义一个结构体 那么在主函数外面定义

struct book

{

};

define定义

定义常量

#define MAX 10

typedef

改名卡

类型定义,小名

typedef unsighed int d_int把unsighed int改名d_int

unsighed int num=20;

d_int num2=20;

它和num的类型完全相等 就是类型名太长 改个小名

static修饰变量和函数的
while循环while循环
do...while循环不管别的就是干 上来不管先循环一次

(1)调用局部变量

#include<stdio>
void test()//无返回值 
{
    int a=1;//定义变量 局部变量 出范围生命周期结束
    a++;    //a++ +1
    printf("a=%d",a);//打印信息a;
}
int main()
{
    int i=0;//定义变量i
    while(i<5)//条件i<5
    {
    test();//打印a=2 因为调用函数是局部变量,每次调用时a都从1开始
    i++;    //i++ i+1 i>5循环结束
    }



    return 0;
}

示范一个代码示例

调用函数

打印结果是5个a=2

使用static 修饰局部变量 生命周期延长了!

代码如下

#include<stdio>
void test()//无返回值 
{
    static int a=1;//添加关键字static 现在a是一个静态局部变量 生命周期延长了
    a++;    //a+1 a的值保留
    printf("a=%d",a);//打印信息a; 2 3 4 5 6
}
int main()
{
    int i=0;//定义变量i
    while(i<5)//条件i<5
    {
    test();//打印a=2 a的结果保留每次打印+1
    i++;    //i++ i+1 i>5循环结束
    }



    return 0;
}

这个打印结果就是2.3.4.5.6了因为a的结果保留了

static修饰了局部变量 生命周期延长

本来做不到的事情 被static加上buff一下就做到了哈哈

(2)extern 全局变量

代码如下

文件(1)int a=2022;
文件(2)extern int a;    //extern生命外部符号
printf("a=%d",a);//很好的打印2022

打印结果是2022

因为全局变量的作用域是整个项目工程

int a=全局变量


static修饰全局变量!

代码如下

文件(1)static int a=2022; //使用static修饰全局变量
文件(2)extern int a;    //extern声明外部符号
printf("a=%d",a);//识别不到全局变量a了

识别不到全局变量a了

static修饰全局变量 改变变量的作用域 让静态的全局变量只能在自己源文件中使用

出了源文件就没法使用了!


(3)static修饰函数

代码如下

文件(1)
int Add(int x,int y)    //全局变量函数
{
    int d=x+y;
    return d;
}

文件(2)extern int Add(int,int)     //extern声明外部符号
int main()
{
    int a=10;
    int b=20;
    int sum=Add(a,b);     //定义sum 把Add函数算出的结果放到sum里
     printf("sum=%d",sum);   
    return 0;
}

static修饰函数的话 和修饰全局变量一样识别不到 不能使用

static修饰函数改变了函数的链接属性

外部链接属性——>内部链接属性

总结:

static 分享的比较多

关键字不能被修改 可以使用typedef来改名

总结完毕!

7363432d638443f1afa8270927655d99.png

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值