C中关键字

C语言中的三个重要关键字的作用

C语言中static关键字的作用

作用:

  1. 修饰局部变量:(改变局部变量的生命周期)

    普通局部变量(即未加static修饰)在未进行赋值和申请地址时,系统都会默认给定一个垃圾值和随机地址,在其所在程序执行完后,系统会释放其地址;而被static进行修饰的局部变量,在程序执行结束后,依旧保存在相对应的地址,当本段程序再次被调用时,依旧存有上次运行后的结果。

#include <stdio.h>

void p()
{
	int i = 1;
	printf("i = %d\n", i);
	i++;
	printf("i++ = %d\n", i);
}

void static_p()
{
	int static_i = 1;
	printf("i = %d\n", static_i);
	i++;
	printf("i++ = %d\n", static_i);
}
int main()
{
	p();
	printf("\n");
	static_p();
	printf("二次运行后:\n");
	p();
	printf("\n");
	static_p();
	
	return 0;
}

程序运行结果:

i = 1;
i++ = 2;

i = 1;
i++ = 2;
二次运行后:
i = 1;
i++ = 2;

i = 2;
i++ = 3;

含有静态常量的函数多次执行时,其静态常量的地址不变,故值会影响下次运算结果。

  1. 修饰全局变量

    普通全局变量定义后,可在整个工程文件中进行调用,即在同一个工程中的其他文件中定义相同变量时,系统会默认成同一个全局变量;在加入static修饰后,静态全局变量仅适用于当前文件,当在其他文件中进行相同名称的变量定义时,系统会定义成不同变量,可定义为不同类型和地址的变量。

  2. 修饰函数时

    修饰函数时,原理同全局变量,即未被static修饰的函数,可以在同一个工程的其他文件中进行调用;而被修饰的静态函数,仅适用于当前文件,在其他文件中可重新进行定义和调用。

C语言中extern关键字的作用

extern: 指所引用的变量或函数来源于其他文件,即引用于其他文件,主要起声明作用

变量
变量未加extern时,变量出现可能是定义也可能是声明,当加入extern进行修饰时,修饰的变量只能是声明作用,即extern变量不能进行赋值,已在其他文件中定义。

#extern int num;       //声明num这个变量,表示已在其他文件中定义
#extern int num = 10;  //extern定义变量需要分配内存,故使用错误

函数
应用在函数之前,表示此函数并非本文件所定义的函数,默认为外部函数,用于区分工程中的不同文件中类似函数的定义或声明,能够标准化程序的书写,区分工程中的不同函数。

C语言中const关键字的作用

const:
const作为C语言中的一个关键字,主要起保护和防止意外的作用,可以用来修饰变量、函数、返回值等,可以提高被修饰物的稳定性,即保护他们不被意外修改。

1.函数
const修饰函数时,被修饰函数内部所有不进行参数修改的函数有应该声明为const函数,如果被修饰函数改变了内部参数或者通过外部函数进行了内部参数的修改,则编译时系统会进行报错。

2.返回值
函数返回const指针类型,则const指针受保护,不会受到改变,只能返回给同类型的const指针变量;
函数返回值如果为值传递,则无须加const修饰,函数会把返回值返回给外面变量,即const无意义。

3.变量
const char *p: 即被修饰的p指针指向的内容受保护,无法改变;
char *const p:即被修饰的p内容可变,但是指针p本身的地址无法被改变;
还可以将两种修饰方法进行结合,即保护其内容和本身地址都无法受到改变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
python大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程,如有问题或建议,请及时私信沟通,帮助解答。 2.项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 python大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zippython大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zip python大作业基于pyqt5框架设计的音乐播放器项目源码+超详细注释(带GUI界面).zip
基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip 【优质项目推荐】 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程,如有问题或建议,请及时私信沟通,帮助解答。 2.项目主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、项目初期立项演示等用途。 4.如果基础还行,或热爱钻研,可基于此项目进行二次开发,DIY其他不同功能。 基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip 基于python大数据分析与可视化的疫情信息发布平台源码(含前端、后端、数据库).zip

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值