时间:2022-06-06 09:33:27 | 栏目:C代码 | 点击:次
生活中的一些数据有些数据不能变:血型、性别、圆周率。有些数据一定可变:工资、年龄、体重。我们用C语言怎么描述:常量-不能改变的量 变量-能被改变的量
变量分为局部变量和全局变量
举个例子:
#include<stdio.h> int a = 100; int main() { int a = 10; printf("%d\n," a); return 0; }
代码的输出结果是10
我们可以看到全局变量和局部变量的名称相同,而发生这种情况的时候,我们局部变量优先,所以,代码会输出10。
虽然我们可以这样定义两个名称相同的变量,但是不建议这样写。
写一个代码求2个整数的和:
#include<stdio.h> int main() { int a = 0; int b = 0; int sum = 0; scanf("%d %d", &a, &b); sum = a + b; printf("sum = %d\n", sum); return 0; }
scanf是输入函数
%d代表输入1个整型
两个%d代表输入2个整型
&a &b代表输入的数据
&a放到第一个%d里,&b放到第二个%d里
sum代表a与b的和
scanf函数前面指的是格式,后面指的是我要把数据存放到哪里去
⑴作用域:这个变量可以在哪里使用,哪里就是它的作用域。
①
#include<stdio.h> int main() { printf("hehe\n"); int a=10; printf("a = %d", a);//代码作用域 return 0; }
②
#include<stdio.h> int main() { printf("hehe\n"); printf("a=%d", a); { int a = 10; } return 0; }
在大括号里面定义的变量a的作用域是它的自己所在的大括号。
大括号里的变量只能在大括号里使用,上面代码的输出函数在大括号外,此代码无法运行。
③正确代码如下
#include<stdio.h> int main() { printf("hehe\n"); { int a=10; //代码的作用域 printf("a=%d", a); } return 0; }
局部变量的作用域就是变量所在的局部范围
全局变量的作用域是整个工程
执行性的代码必须放在大括号里面
变量的创建可以放在大括号外面
⑵变量的生命周期:
变量的创建和销毁之间的时间段
局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束
全局变量的生命周期:程序的生命周期
C语言中的常量:
⑴字面常量
#include<stdio.h> int main() { 3.14; //字面常量 10; //字面常量 'a'; //是字面常量,也是字符常量 'abcdefg'; //字面常量,也是字符串常量 return 0; }
用单引号括起来的是字符常量,用双引号括起来的是字符串常量
⑵const 修饰的常量
#include<stdio.h> int main() { const int num = 10;//变量 num = 20; printf("num = %d\n",num); //输出为20 int arr[10] = {0};//10个元素 const int n = 10; int arr[n] = {0}; //错误 retuen 0; }
当不想改变〃num〃变量的值的时候加上const。这个时候代码会报错,说明有了const的修饰我们无法改变num的值了。
正确代码应将这一行代码删除。这个时候num叫做常变量,具有常属性(不能被改变的属性)。代码报错,经过const修饰过的n是常变量但本质上是一个变量。
因为代码中的方块里要是一个常量所以代码会报错。正确代码是变为一个常量,例如10,20,‘a’。
⑶#define定义的标识符常量
#define MAX 10000 int main() { MAX = 20000; //错误 int n = MAX; printf("n = %f\n",n);//输出10000 return 0; }
MAX就是define定义的标识符常量,因为不能改变MAX的值,所以叫常量。#在大括号里面定义的也行
错误示范:代码报错,因为MAX是不能改的正确写法是将20000改为10000
⑷枚举常量:一般用于可以一一列举的常量
#include<stdio.h> int main() { enum Sex s = MALE; return 0; } ``````c //性别enum Sex//枚举类型 { //这种枚举类型的变量的未来可能取值 //枚举常量 MALE, FEMALE, SECRET }
上面三个值就是enum Sex这种类型的枚举变量的未来的可能取值