常量变量的反复横跳

简介: 生活中有很多的数据,有些是不能变,比如圆周率,黄金比例,铁的膨胀系数等等。

生活中有很多的数据,有些是不能变,比如圆周率,黄金比例,铁的膨胀系数等等。同样,也有会变的数据,工资,年龄,身高啥的。

在C语言中,常量和变量在描述上的区别在于可不可以改变。当你创建一个变量时,就要定义变量,即类型后跟变量名 = 0,直接跟变量名字是不推荐的。变量咱又可细分为全局变量和局部变量。局部变量即定义在大括号(代码块)内部的变量,反之就是全局变量。在某次敲代码时,发现局部变量和全局变量存在选择性。查阅资料发现,当局部变量和全局变量名字冲突时,局部变量优先执行。

## 常量是甚么

首先了解到的就是字面常量,显而易见,就是字面可见不可变的常量。第二是 const修饰的常变量,num原本是个变量,const修饰后程序报错就说明后面定义的值无效了。可是开始我很疑惑,常变量,常变量,既是个常量又是个变量?其实不是,本身是个变量但是被 const赋予了常量属性。


第三就是#define定义的标识符常量,比如赋予Max=100,就是# define Max 100,直接对Max进行赋值是错误的。


最后就是枚举常量,简而言之就是可以逐一列举的常量,如果是数字就没必要一一枚举了。

# define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>
int main()
{
  *int a = 0;
  int b = 0;
  int sum = 0;
  scanf("%d %d", &a, &b);
   sum = a + b;
  printf("%d\n", sum);
  return 0;
    }

image.png

以上是利用sum函数理解常量的过程。


攻坚🤣

当然,我使用的是vs2019,scanf函数会被认定为不安全,会导致系统判定scanf返回值被忽略的问题,可以使用内置的 scanf_c函数,我本人是使用的#define _CRT_SECURE_NO_WARNINGS前缀名或者#pragma warning(disable:4996)或者更改vs中的SDL检查,即在属性中关闭c/c++的所有选项。

相关文章
|
8月前
|
Java Spring
使用枚举定义常量更好点儿
使用枚举定义常量更好点儿
|
8月前
|
自然语言处理
如何在箭头函数中访问非封闭作用域中的变量?
【2月更文挑战第20天】【2月更文挑战第63篇】如何在箭头函数中访问非封闭作用域中的变量?
56 1
|
8月前
|
安全 编译器 C#
C类型转换大揭秘:一文掌握变量间的'变形术'
C类型转换大揭秘:一文掌握变量间的'变形术'
28 0
|
JavaScript
用js函数加判断做出对象中绝对值的效果
用js函数加判断做出对象中绝对值的效果
72 0
|
JavaScript
用js函数加判断做出对象中取整效果
用js函数加判断做出对象中取整效果
71 0
|
8月前
对调 2个变量的值若干种方式
对调 2个变量的值若干种方式
50 0
|
JavaScript
用js函数加判断做出对象中负数四舍五入的效果
用js函数加判断做出对象中负数四舍五入的效果
97 0
枚举时对数组操——三刷AcWing 95. 费解的开关
枚举时对数组操——三刷AcWing 95. 费解的开关
70 0
输出十进制“08”等其他数值,报错无效的八进制数字,换个角度,三种方法解决问题
很显然,我们自己的语言与计算机有差别,我们想法是08,09,就是十进制数前加一个零,这是一个我们自定的格式,但计算机听不懂人类语言,就默认把0+某个数看成了八进制我们知道,八进制不可能出现8以上的数字,所以写程序时就有了下面这种报错:那我们赋值、输入时,无法表达出“我们认为”的这种所谓的十进制格式时,就应该换个角度去实现。.........
输出十进制“08”等其他数值,报错无效的八进制数字,换个角度,三种方法解决问题