C语言零基础精通变量与常量

 更新时间:2022年04月23日 09:02:43   作者:马桶上看算法  
这篇文章主要为大家详细介绍了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这种类型的枚举变量的未来的可能取值

到此这篇关于C语言零基础精通变量与常量的文章就介绍到这了,更多相关C语言变量与常量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C++第三方日志库log4cplus的安装与使用配置教程

    C++第三方日志库log4cplus的安装与使用配置教程

    log4cplus是C++编写的开源的日志系统,log4cplus具有线程安全、灵活、以及多粒度控制的特点,本文给大家介绍C++第三方日志库log4cplus的安装与使用教程,感兴趣的朋友一起看看吧
    2022-02-02
  • C++ DFS算法实现走迷宫自动寻路

    C++ DFS算法实现走迷宫自动寻路

    这篇文章主要为大家详细介绍了C++ DFS算法实现走迷宫自动寻路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • c/c++单例模式类的混合编译案例详解

    c/c++单例模式类的混合编译案例详解

    ​ 由于c语言中没有类的概念,因此对于有类的cpp文件与c文件混合编译时,提供一个中间层提供类的操作接口,在c文件中调用接口实现间接操作类对象,这篇文章主要介绍了c/c++单例模式类的混合编译的相关资料
    2022-10-10
  • C++如何调用opencv完成运动目标捕捉详解

    C++如何调用opencv完成运动目标捕捉详解

    OpenCV作为机器视觉开源库,使用起来非常不错,这篇文章主要给大家介绍了关于C++如何调用opencv完成运动目标捕捉的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • C++应用Eigen库对应实现matlab中部分函数问题

    C++应用Eigen库对应实现matlab中部分函数问题

    这篇文章主要介绍了C++应用Eigen库对应实现matlab中部分函数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • C语言详细分析宏定义与预处理命令的应用

    C语言详细分析宏定义与预处理命令的应用

    宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单的替换。字符串中可以含任何字符,可以是常数,也可以是表达式,预处理程序对它不作任何检查,如有错误,只能在编译已被宏展开后的源程序时发现
    2022-07-07
  • C++ STL中一些常用算法总结

    C++ STL中一些常用算法总结

    都说STL是数据容器与算法的高度组合,在前面的文章中我们介绍了常见的几种容器,vector、list、map、deque等,今天我们再来介绍下STL中常用的一些算法,需要的朋友可以参考下
    2024-02-02
  • C++ 复制控制之复制构造函数的实现

    C++ 复制控制之复制构造函数的实现

    所谓的“复制控制”即通过这三个成员函数控制对象复制的过程,本文主要介绍了C++ 复制控制之复制构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • vscode 采用C++17版本进行编译的实现

    vscode 采用C++17版本进行编译的实现

    本文主要介绍了vscode 采用C++17版本进行编译,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C++冒泡排序算法实例

    C++冒泡排序算法实例

    这篇文章主要介绍了C++冒泡排序算法实例,本文先是介绍了什么是冒泡排序,然后给出了实现代码,需要的朋友可以参考下
    2014-10-10

最新评论