初识C语言
本篇重点
- 变量、常量
变量、常量
在生活中,有两种类型的量,一种是可变的叫做变量(体重,时间等等),一种是不可变的叫做常量(性别等等)。
在C语言中也是如此。
定义变量的方法
用数据类型来定义一个变量,就叫做定义变量。给变量赋予一个初始值,叫做变量初始化。
char ch = 'A';
int age = 18;
float Pi = 3.14;
//我们在定义变量的时候,赋予的名字最好是有意义的,这样才能更好的识别区分代码。
变量的分类
- 局部变量
- 全局变量
#include<stdio.h>
int a = 10;//这里的a和b都是全局变量
int b = 20;
int main()
{
int a = 20;//这里的a和c都是局部变量
int c = 30;
printf("a=%d",a);//注意这里的局部a和全局a重名了,那么此时遵循局部变量优先的原则
printf("b=%d",b);
printf("c=%d",c);
return 0;
}
变量的使用
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);//scanf函数会让我们在键盘输入数据,两个参数就说明输入两个数据
sum = num1 + num2;
printf("sum = %d\n", sum);//printf函数会把sum的值以%d的形式打印到屏幕上
return 0;
}
变量的作用域和生命周期
-
作用域
变量在代码中的可执行范围就是作用域
局部变量:变量所在的局部范围,从进入 { 开始,到 } 结束
全局变量:作用于整个工程
-
生命周期
变量从出生到死亡的整个时间就是生命周期
局部变量:进入作用域进入作用域生命周期开始,出作用域生命周期结束。
全局变量:整个程序的生命周期。
常量
C语言中的常量分为以下几种:
- 字面常量
const
修饰的常变量- #define定义的标识符常量
- 枚举常量
#include<stdio.h>
#define MAX 10 //这里的MAX就是一个标识符常量
int main()
{
1;//字面常量--不可以被改变,1就是1,a就是a,这种量就叫做字面常量
'a';//字面常量
return 0;
}
#include<stdio.h>
int main()
{
int a = 4;;//这里的a是一个变量,
a = 5;;//这里的a可以被修改,这里我们改为了5;
const int b = 4;//这里被const修饰过的b就是常变量,
b = 5;//注意 b = 5 是错误的,不能够对b进行修改。
return 0;
}
那这里的b为什么叫常变量呢?
是因为b本身还是变量,但却有了常量的属性,看例子。
#include<stdio.h>
int main()
{
int arr1[10] = { 0 };//在定义数组时,[]里只能填常量,或者是不填内容
int a = 10;
int arr2[a] = { 0 };//这里的[]放入了变量a,编译器会报错
const int b = 4;
int arr2[b] = { 0 };//这里的[]放入了常变量b,编译器还是会报错,
//因为常变量b仍然是一个变量,但是不可以被修改
return 0;
}
#include<stdio.h>
#define MAX 10 //这里的MAX就是一个标识符常量 MAX的内容就是10
int main()
{
int arr[MAX] = {0};//定义数组时,编译器没报错,说明MAX肯定是一个常量
MAX = 20;//MAX既然是常量,那么就不可以修改,编译器也就会报错
return 0;
}
#include<stdio.h>
enum colour//enum是一个关键字,enum colour就是一个枚举类型
{
RGB,//这些都是枚举常量
GREEN,
BLUE
};
int main()
{
enum colour a = RGB; //枚举类型定义了一个变量a,并赋值为RGB。
int arr [GREEN] = {0};//这里不会报错,肯定说明GREEN是一个常量
BLUE = 10;
return 0;
}