一.变量与常量
1.我们先从生活中来理解变量与常量的区别,变量顾名思义就是会变的量,常量则是不会改变的量,那么我们生活中有哪些变量与常量呢?
我这里举了一些例子:
变量:年龄、身高、体重、物价
常量:血型、性别、身份证号
那么在C语言中我们又是怎么表示变量与常量的呢?
以下举了几个定义变量的例子:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main(void){
int age = 10; //年龄
short high = 170; //身高
char ch = 'a'; //字母
float score = 95.5; //分数
return 0;
}
我们将以上代码服务器托管网写入到main()函数中,可以发现程序成功的编译并运行了,如图所示:
可以看到我在初始化变量的时候都在后面加了注释(//后面的内容被称为注释,之后会详细讲),这就提醒着我们什么类型的数据就需要用到什么样子的数据类型,要一一对应
二.局部变量与全局变量
1.我们还是用写代码的方式来了解全局变量与局部变量的区别,代码如下:
#include
int score = 100; //这是一个全局变量
int main(void){
printf("score = %dn",score);
getchar();
return 0;
}
我们可以看到变量score被初始化在了main()函数之外,那么我们在main()函数内部是否可以通过printf()函数来输出这个变量score呢?答案是可以的,程序运行结果如下:
所以我们理解为全局变量就是在大括号外部定义的变量,而局部变量则是在大括号内部定义的变量,下面我们通过代码演示来区分全局变量与局部变量,代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int score = 100;
void high(void){
int high = 100;
printf("high = %dn",high);
printf("score = %dn",score);
}
//这是一个全局变量
int main(void){
high();
printf("high = %dn", high);
printf("score = %dn",score);
getchar();
return 0;
}
这里我们自定义了一个函数,这个自定义函数名称为high,该函数返回值服务器托管网为空且不接受任何形参,我们在这个自定义函数中初始化了变量high,这个high就属于局部变量,我们再在main()函数中调用我们的自定义函数,最后在main()函数中添加与自定义函数中相同的printf()语句来打印两个变量,我们来看结果,如图所示:
我们可以看到自定义函数中的printf()函数都输出了正常的结果,分别是 100 100,在main()函数中score正常输出了,但是high的值却出乎我们意料,输出了一个很大的数据,这就是全局变量与局部变量的区别,局部变量只能在指定的函数内部使用,而全局变量可以在任意一个函数中调用,这里main()函数由于没有定义变量high,所以printf()函数输出的结果是内存随机值,如果要让变量high也能正常输出的话最简单的方式就是将high也变成全局变量,如图所示:
注意全局变量的名称不能与自定义函数的名称相同,否则会出错!
2.全局变量容易被污染的问题
我们可以尝试在IDE中写入以下代码并编译尝试运行:
int main(void)
{
int i = 1;
int i = 10;
return 0;
}
我们会发现编译器报了一个错误,告诉我们变量被重定义,如图所示:
但是当我们将代码修改成以下形式就会发现程序不仅能够正常编译还没有报错
#include
int i = 10;
int main(void)
{
int i = 1;
printf("i=%dn",i);
return 0;
}
所以在C语言中当全局变量名称与局部变量的名称相同的时候,局部变量优先使用,所以我们写代码的时候需要注意尽量不要将全局变量的名称写成与局部变量相同,防止出现变量被污染的情况
2023/9/15
王起舟
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
一、问题:域名flow.nzkong.com解析很慢: 排查过程 抓包分析:tcpdump -i eth0 -n -s 500 port domain 1 14:40:44.548553 IP 10.13.21.38.29551 > 10.13.255.…