C语言变量与常量
马桶上看算法 人气:01.变量和常量的概念
生活中的一些数据有些数据不能变:血型、性别、圆周率。有些数据一定可变:工资、年龄、体重。我们用C语言怎么描述:常量-不能改变的量 变量-能被改变的量
2.变量的类型
- 创建整形变量用到的数据类型是int
- 创建字符型变量用到的数据类型是char
- 创建浮点型变量用到的数据类型是float或者是double
- 创建哪种变量就要用到哪种数据类型
- 数据类型是创建变量用的
3.变量的分类
变量分为局部变量和全局变量
举个例子:
#include<stdio.h> int a = 100; int main() { int a = 10; printf("%d\n," a); return 0; }
- 整型变量用**%d**打印
- 字符型变量用**%c**打印
- 浮点型数据float类型的变量用**%f**打印
- 浮点型数据double类型的变量用**%lf**打印int是类型,a是变量的名字,=叫赋值,=后面的叫数值
- int (类型)
- a (变量的名字)
- = (赋值)
- 10 (数值)
- 大括号内部的变量叫局部变量,上面局部变量是a
- 大括号外部的变量叫全局变量,上面全局变量a
代码的输出结果是10
我们可以看到全局变量和局部变量的名称相同,而发生这种情况的时候,我们局部变量优先,所以,代码会输出10。
虽然我们可以这样定义两个名称相同的变量,但是不建议这样写。
4.变量的使用
写一个代码求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函数前面指的是格式,后面指的是我要把数据存放到哪里去
5.变量的作用域和生命周期
⑴作用域:这个变量可以在哪里使用,哪里就是它的作用域。
①
#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; }
局部变量的作用域就是变量所在的局部范围
全局变量的作用域是整个工程
执行性的代码必须放在大括号里面
变量的创建可以放在大括号外面
⑵变量的生命周期:
变量的创建和销毁之间的时间段
局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束
全局变量的生命周期:程序的生命周期
6.常量的分类
C语言中的常量:
- 字面常量
- const 修饰的常量 -
- #define定义的标识符常量 -
- 枚举常量
⑴字面常量
#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这种类型的枚举变量的未来的可能取值
加载全部内容