C语言中变量与常量

目录

1. 变量、常量认识

2.定义变量的方法

3.变量的分类

4.变量的使用

5.变量的作用域和生命周期

作用域

生命周期

6.常量

7.扩展


1. 变量、常量认识

常量:生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
变量:生活有些值是可变的(比如:年龄,体重,薪资)。
C语言就是用常量和变量来描述信息。
C 语言中用 常量 的概念来表示不变的值,变得值C语言中用 变量 来表示。

2.定义变量的方法

#iclude
int main()
{
//创建的一个变量
//方法1 - 类型  变量的名字 = 0(初始化值);
//方法2 - 类型  变量的名字
int age = 15;
float weight = 45.5f; //float weight = 45.5;C中有没有f都可以
double heigh = 179.21;
char ch = 'w';
age = age+1;
weight = weight-10;
printf("%d\n",age);
printf("%lf\n",weight);

return 0;
}
//%d - 整型
//%f - float
//%lf - double

3.变量的分类

局部变量 - {} 内部定义的
全局变量 - {} 外部定义的
#include 

int global = 2022;//全局变量 - {}外部的变量
int main()
{
   int local = 2023;//局部变量 - {}内部的变量
   //下面定义的global会不会有问题?
   int global = 2020;//局部变量
   printf("global = %d\n", global);  //内部变量优先原则
   return 0;
}
运行结果:
C语言中变量与常量_第1张图片

#include
int a = 100;
int main()
{
	int a=10;
	printf("%d\n",a);
	return 0;
}

运行结果:

C语言中变量与常量_第2张图片

 总结:

上面的局部变量 global 变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用,但不建议把全局变量和局部变量的名字写成一致的。

4.变量的使用

#include 
int main()
{
   int num1 = 0;//int num1
   int num2 = 0;//int num2
   int sum = 0;
   printf("输入两个操作数:>");
   scanf("%d %d", &num1, &num2);  
   sum = num1 + num2;
   printf("sum = %d\n", sum);
   return 0;
}
//这里介绍一下输入,输出语句
//scanf 输入赋值 需要赋值符号&
//printf 输出打印
//因为为整数所以使用%d
运行结果:
C语言中变量与常量_第3张图片 

5.变量的作用域和生命周期

作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的 ,而限定这个名字的 可用性的代码范围 就是这个名字的作用域。(这个变量在哪里能使用,哪里就是他的作用域)
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
#include
//作用域和生命周期
//局部变量的作用域:就是变量所在的局部范围
//全局变量的作用域:整个工程内合法位置 
int g_val = 2021;//全局变量
int main(){
	printf("1:%d\n",g_val);
	printf("haha!\n");
	{
	printf("2:%d\n",g_val);
	int a = 10;//局部变量 
	printf("a = %d\n", a);
	
	}
    //printf("a = %d\n", a);超出局部变量a的作用域 
    printf("3:%d\n",g_val);
	return 0;
} 

运行结果:

C语言中变量与常量_第4张图片

 同一工程下,其他的.c文件下使用全局变量方法,声明一下变量 extern 关键字

//同一工程下,其他的.c文件下使用全局变量方法
//声明一下变量 extern 关键字
extern int g_val;
int main()
{
printf("%d\n",g_val);
return 0;
}

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。(可以理解为main函数的生命周期)
注意:变量名不能重复冲突。

6.常量

C 语言中的常量和变量的定义的形式有所差异。
C 语言中的常量分为以下以下几种:
1)字面常量
2)const 修饰的常变量
3)#define 定义的标识符常量
4)枚举常量
#include
// 举例
enum Sex
{
MALE ,
FEMALE ,
SECRET
};
// 括号中的 MALE,FEMALE,SECRET 是枚举常量
int main ()
{
    // 字面常量演示
    3.14 ; // 字面常量
    1000 ; // 字面常量
   
    //const 修饰的常变量
    const float pai = 3.14f ;   // 这里的 pai const 修饰的常变量
    pai = 5.14 ; // 是不能直接修改的!
   
    //#define 的标识符常量 演示
#define MAX 100
    printf ( "max = %d\n" , MAX );
   
    // 枚举常量演示
    printf ( "%d\n" , MALE );
    printf ( "%d\n" , FEMALE );
    printf ( "%d\n" , SECRET );
    // 注:枚举常量的默认是从 0 开始,依次向下递增 1
上面例子上的 pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了 变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。
/*
int main()
{
  
 //1.字面常量
    /*
    3.14
    10;
    'a';
    "abcdef";
    */
    
    /* 
 
   //2.const 修饰的常变量
    //int num =10;//变量
    //num = 20;
    //printf("num = %d\n",num);//结果:20 
    const int num =10;//num就是常变量 - 具有常属性(不能被改变的属性) 
    //num = 20;//D:\Project_All\C语言\变量.c    [Error] assignment of read-only variable 'num'
    //表达式必须是可以修改的左值,左值指定const对象 
    printf("num = %d\n",num);//结果:10   
    //数组 
    int arr[10] ={0};//10个元素
    int n = 10;
    //int arr1[n] = {0};会报错 //n是变量这里是不行的 
    const int m=10 
    int arr2[m] = {0};//会报错 //n是变量这里是不行的 
    //即使被const修饰了的m也不行,本质上是变量,属于常变量
    */
     
     /*
    
//3.#define 定义的标识符常量
    #define MAX 10000
    //MAX = 2000; 不可以再被修改 
    int n = MAX;
    printf("%d",n); //结果:10000 
    */ 
    
 
   //4.枚举常量 可以一一列举的常量,例如性别男女,血型ABO,星期1-7
    //例如性别
    enum Sex // enum枚举关键字 
    {
    //这种枚举类型的变量的未来可能取值
    //MALE,
    MALE=3,//赋初值 
    FEMALE,
    SECRET    
    }; 
    int main()
    {  enum Sex n =SECRET;
       enum Sex s =MALE; //s取值只能是 MALE,FEMALE,SECRET中的1个 
       //枚举常量的默认是从0开始,依次向下递增1的
       printf("%d\n",MALE); //默认输出结果0 
       printf("%d\n",FEMALE);//默认输出结果1
       printf("%d\n",SECRET);//默认输出结果2
         printf("%d\n",n);//默认输出结果2
        printf("%d\n",s);//默认输出结果0
         //如果赋初始值话,依次向下递增1的   输出结果3 4 5 5 3 
        return 0; 
    }
#include
/*
int main()
{
	//1.字面常量
	/*
	3.14
	10;
	'a';
	"abcdef";
	*/
	
	/* 
	//2.const 修饰的常变量
	//int num =10;//变量
	//num = 20;
	//printf("num = %d\n",num);//结果:20 
	const int num =10;//num就是常变量 - 具有常属性(不能被改变的属性) 
	//num = 20;//D:\Project_All\C语言\变量.c	[Error] assignment of read-only variable 'num'
	//表达式必须是可以修改的左值,左值指定const对象 
	printf("num = %d\n",num);//结果:10   
	//数组 
	int arr[10] ={0};//10个元素
	int n = 10;
	//int arr1[n] = {0};会报错 //n是变量这里是不行的 
	const int m=10 
	int arr2[m] = {0};//会报错 //n是变量这里是不行的 
	//即使被const修饰了的m也不行,本质上是变量,属于常变量
	*/
	 
	 /*
	//3.#define 定义的标识符常量
	#define MAX 10000
	//MAX = 2000; 不可以再被修改 
	int n = MAX;
	printf("%d",n); //结果:10000 
	*/ 
	
	//4.枚举常量 可以一一列举的常量,例如性别男女,血型ABO,星期1-7
	//例如性别
	enum Sex // enum枚举关键字 
	{
	//这种枚举类型的变量的未来可能取值
	//MALE,
	MALE=3,//赋初值 
	FEMALE,
	SECRET	
	}; 
	int main()
	{  enum Sex n =SECRET;
	   enum Sex s =MALE; //s取值只能是 MALE,FEMALE,SECRET中的1个 
	   //枚举常量的默认是从0开始,依次向下递增1的
	   printf("%d\n",MALE); //默认输出结果0 
	   printf("%d\n",FEMALE);//默认输出结果1
	   printf("%d\n",SECRET);//默认输出结果2
	 	printf("%d\n",n);//默认输出结果2
		printf("%d\n",s);//默认输出结果0
	 	//如果赋初始值话,依次向下递增1的   输出结果3 4 5 5 3 
		return 0; 
	}

运行结果:

C语言中变量与常量_第5张图片

7.扩展

1.C语言中main函数可以没有return语句吗?

可以,但是return语句有助于检错,可以返回控制权给系统,防止被利用这个漏洞。

2.C语言中return 0的含义:

int main()
{
return 0;
}

1)返回值int 类型的函数返回:

return语句用来结束循环,或返回一个函数的值。

return 0:一般用在主函数结束时,按照程序开发的一般惯例,表示成功完成本函数。

2)布尔类型返回:

return 0:返回假;

return 1:返回真;

//例子如下:
int main()

{

int a;// 前面一些其他运行// ....// 到最后

if (a == 100) {

return 0;

} else {

return -1;

}
}

return 0 代表程序正常退出

return是C++预定义的语句,它提供了终止函数执行的一种方式。当return语句提供了一个值时,这个值就成为函数的返回值
 

你可能感兴趣的:(C,C++,c语言,c++,开发语言)