服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言零基础精通变量与常量

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

2022-11-14 13:54马桶上看算法 C/C++

这篇文章主要为大家详细介绍了C语言的变量和常量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1.变量和常量的概念

生活中的一些数据有些数据不能变:血型、性别、圆周率。有些数据一定可变:工资、年龄、体重。我们用C语言怎么描述:常量-不能改变的量 变量-能被改变的量

2.变量的类型

  • 创建整形变量用到的数据类型是int
  • 创建字符型变量用到的数据类型是char
  • 创建浮点型变量用到的数据类型是float或者是double
  • 创建哪种变量就要用到哪种数据类型
  • 数据类型是创建变量用的

3.变量的分类

变量分为局部变量和全局变量

举个例子:

?
1
2
3
4
5
6
7
8
#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个整数的和:

?
1
2
3
4
5
6
7
8
9
10
11
#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.变量的作用域和生命周期

⑴作用域:这个变量可以在哪里使用,哪里就是它的作用域。

?
1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{      
     printf"hehe\n");       
     int a=10;            
     printf"a = %d", a);//代码作用域     
     return 0;
}

?
1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main()
{    
     printf("hehe\n");   
     printf("a=%d", a);      
     {              
          int a = 10;      
     }       
     return 0;
}

在大括号里面定义的变量a的作用域是它的自己所在的大括号。

大括号里的变量只能在大括号里使用,上面代码的输出函数在大括号外,此代码无法运行。

③正确代码如下

?
1
2
3
4
5
6
7
8
9
10
#include<stdio.h>
int main()
{      
     printf"hehe\n");  
     {          
          int a=10;  //代码的作用域       
          printf"a=%d", a);      
     }       
     return 0;
}

局部变量的作用域就是变量所在的局部范围

全局变量的作用域是整个工程

执行性的代码必须放在大括号里面

变量的创建可以放在大括号外面

⑵变量的生命周期:

变量的创建和销毁之间的时间段

局部变量的生命周期:进入局部范围生命开始,出局部范围生命结束

全局变量的生命周期:程序的生命周期

6.常量的分类

C语言中的常量:

  • 字面常量
  • const 修饰的常量 -
  • #define定义的标识符常量 -
  • 枚举常量

⑴字面常量

?
1
2
3
4
5
6
7
8
9
#include<stdio.h>
int main()
{     
     3.14;      //字面常量   
     10;        //字面常量   
     'a';       //是字面常量,也是字符常量   
     'abcdefg'; //字面常量,也是字符串常量   
     return 0;
}

用单引号括起来的是字符常量,用双引号括起来的是字符串常量

⑵const 修饰的常量

?
1
2
3
4
5
6
7
8
9
10
11
#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定义的标识符常量

?
1
2
3
4
5
6
7
8
#define MAX 10000
int main()
{       
    MAX = 20000;  //错误   
    int n = MAX;    
    printf"n = %f\n",n);//输出10000       
    return 0;
}

MAX就是define定义的标识符常量,因为不能改变MAX的值,所以叫常量。#在大括号里面定义的也行

错误示范:代码报错,因为MAX是不能改的正确写法是将20000改为10000

⑷枚举常量:一般用于可以一一列举的常量

?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
int main()
{     
     enum Sex s = MALE;      
     return 0;
}
``````c
    //性别enum Sex//枚举类型
{    //这种枚举类型的变量的未来可能取值          //枚举常量       
       MALE,       
       FEMALE,     
       SECRET
}

上面三个值就是enum Sex这种类型的枚举变量的未来的可能取值

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

原文链接:https://blog.csdn.net/m0_63033419/article/details/121879521

延伸 · 阅读

精彩推荐
  • C/C++C++课程设计之运动会管理系统

    C++课程设计之运动会管理系统

    这篇文章主要为大家详细介绍了C++课程设计之运动会管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    自动化1123班潘国成10622021-07-02
  • C/C++C++ explicit构造函数实例解析

    C++ explicit构造函数实例解析

    这篇文章主要介绍了C++ explicit构造函数,需要的朋友可以参考下...

    C++教程网5082021-01-22
  • C/C++C++实现基于控制台界面的吃豆子游戏

    C++实现基于控制台界面的吃豆子游戏

    这篇文章主要介绍了C++实现基于控制台界面的吃豆子游戏,实例分析了吃豆子游戏的原理与C++实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下...

    司青10532021-02-25
  • C/C++一文搞懂C++ 动态内存

    一文搞懂C++ 动态内存

    这篇文章主要介绍了C++ 动态内存的的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    菜鸟教程12222021-09-13
  • C/C++C++哈希应用的位图和布隆过滤器

    C++哈希应用的位图和布隆过滤器

    这篇文章主要介绍了C++哈希应用的位图和布隆过滤器的相关资料,文章内容多以列举试题的方式讲解,感兴趣的朋友可以参考下面文章内容...

    森明帮大于黑虎帮7962021-12-30
  • C/C++C语言 链式二叉树结构详解原理

    C语言 链式二叉树结构详解原理

    二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。通常的方法是链表中每个结点由三个域组成,数据域和左右指针域...

    薛定谔的猫~4342022-02-24
  • C/C++c++中explicit与mutable关键字的深入探究

    c++中explicit与mutable关键字的深入探究

    这篇文章主要给大家介绍了关于c++中explicit与mutable关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值...

    cpp加油站4162021-11-05
  • C/C++C++之WSAAsyncSelect模型实例

    C++之WSAAsyncSelect模型实例

    这篇文章主要介绍了C++的WSAAsyncSelect模型,实例讲述了socket与Windows消息机制的用法,需要的朋友可以参考下...

    C++教程网7762021-02-14