关键字
文章目录
1.关键字总览
2.变量的命名规则:
1.变量具有描述性
int age;//定义年龄
float salary;//定义薪资
2.名字必须是字母,数字,下划线组成,不能有特殊字符,同时不能以数字开头
int _2r;//ok
int 2r;//error
3.变量不能是关键字
3.关键字typedef(typedefine)
顾名思义就是类型定义,这里理解类型重命名。
# define _CRT_SECURE_NO_WARNINGS 1
typedef unsigned int uint;//给这个定义方法重新定义一个名字
int main() {
unsigned int num = 0;
uint num1 = 1;//直接使用你自己定义的名字
return 0;
}
4.关键字static
在C语言中:
static是用来修饰变量和函数的
- 修饰局部变量-称为静态局部变量
- 修饰全局变量-称为静态全局变量
- 修饰函数-称为静态函数
一旦一个变量被static修饰后,就不会放在栈区了,static修饰后就是静态变量,放在了静态区。
放在静态区的数据,出了作用域是不销毁的,程序的生命周期结束了才销毁。
影响了变量的声明周期,声明周期变长,变得和程序的生命周期一样。
4.1使用static修饰局部变量
1.使用了static修饰局部变量的时候,局部变量出了作用域,不销毁的。
本质上,static修饰局部变量的时候,改变了变量的存储位置。
# define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void test() {
int a = 1;
a++;
printf("%d", a);
}
int main() {
for (int i = 0; i < 10; i++)
{
test();
}
return 0;
}
//输出:2222222222
使用static修饰后
# define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void test() {
static int a = 1;
a++;
printf("%d", a);
}
int main() {
for (int i = 0; i < 10; i++)
{
test();
}
return 0;
}
//输出:234567891011
4.2使用static修饰全局变量
未使用static修饰之前的全局变量,全局变量的外链属性正常,可以被外部访问
static修饰全局变量的时候,这个时候全局变量的外部属性,就变成内部链接属性。
其他的源文件(.c)就不能再使用这个全局变量了。
我们在使用的时候就感觉,作用域变小了。
4.3使用static修饰函数
未使用static饰之前的函数是有外部链接属性的,同样可被外部使用extern引用后正常使用。
static修饰函数的时候,这个时候全局函数的外部属性,就变成内部链接属性。
其他的源文件(.c)就不能再使用这个函数了。
我们在使用的时候就感觉,作用域变小了。
是同上方的使用static修饰全局变量一样的效果。
5.关键字register
register ——寄存器
小拓展:
电脑上的存储设备有哪些?
寄存器(集成到CPU上)
高速缓存(cache)
内存
硬盘
就算你不把个别变量存放在寄存器内,系统也会把其他的变量存放在寄存器内。
int main() {
//寄存器变量
register int num = 3;//建议(register建议的),3存放在寄存中
}
6.栈堆静态区小拓展
就算你不把个别变量存放在寄存器内,系统也会把其他的变量存放在寄存器内。
int main() {
//寄存器变量
register int num = 3;//建议(register建议的),3存放在寄存中
}