【C语言】-变量和常量

1.变量和常量的概念

生活中的一些数据有些数据不能变:血型、性别、圆周率。有些数据一定可变:工资、年龄、体重。我们用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这种类型的枚举变量的未来的可能取值

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与大师约会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值