Bootstrap

零基础学编程(3)——变量与常量、计算两数之和、_CRT_SECURE_NO_WARNINGS解决办法

声明在前

图中用于展示程序代码的软件是Visual Studio 2019 社区版,在微软官网即可下载,本人目前是大四,非计算机专业学生,零基础学编程系列为本人自学笔记及心得,文章中如有错误,欢迎各位批评指正,希望与大家一起学习进步。

变量就是在程序中可以被赋值的量,常量就是不能够改变的量;常见的常量有圆周率、性别、身份证号、血型等;常见的变量有年龄、体重、薪资等

1.变量

1.定义变量的基本方法
int age = 18;
float weight = 45.5f;
char ch='A';
2.变量的分类——全局变量和局部变量
#include<stdio.h>

int global = 1;//全局变量,写在{}代码块之外的变量,在任何地方都可以使用
int main()
{
    int gloabl = 100;//局部变量,写在代码块里面的变量
    printf("%d\n",gloabl)//变量符号都是global,打印的是局部变量
    return 0;
}

注意:
(1)局部变量和全局变量的名字建议不要相同,容易产生误会,产生bug;
(2)当二者相同时,优先打印局部变量。

错误示例:

int main()
{
    {
        int a=1;
    }//此时会报错,该局部变量只可以在这个内部代码块里面生效
    printf("%d\n",a)
    return 0;
}

在这里插入图片描述

3.示例:计算两数之和
int main()
{
    int num1=0;
    int num2=0;
    int sum=0;//C语言语法规定,变量要定义在当前代码块的最前面
    scanf("%d%d",&num1,&num2);//输入数据使用输入函数scanf,取地址符号&,
    sum=num1+num2;
    printf("%d\n",sum);//如果是“sum=%d\n”,则输出的是sum=3
    return 0;
}

在这里插入图片描述

(1)取地址符&:int num1 = 0在内存中申请了一块地址名为num1的空间,scanf为输入函数,当输入的数据需要存放到对应内存空间中时,需要先取出该内存的地址名,即&num1是将名为num1的空间取出来。

生活中举例就是快递员要把你的快递送到你的手里,需要先取出你的地址,然后把快递存放到你填写的那个地址,然后你再去取。

快递=输入的数据;
快递地址=num1;
到达快递地址=&;

(2)若打印语句是:

printf("sum=%d\n",sum);

则最后的输出形式是:
在这里插入图片描述

4.scanf输入函数在VS编辑器平台的不安全性及_CRT_SECURE_NO_WARNINGS解决办法

我第一次运行报错了,提示是这样的:
在这里插入图片描述
原因是库函数scanf是C语言提供的,VS编辑器认为这是不安全的,类似的函数还有不少,出现的错误提示就是_CRT_SECURE_NO_WARNINGS;
而VS编辑器也给出了解决办法,就是使用scanf_s函数,但是scanf_s不是标准C语言提供的,而是VS编辑器提供的,因此跨平台性和可移植性差,到了其他平台上,这个程序就废了。

下面提供三种解决办法:

1)每次在代码第一行输入#define _CRT_SECURE_NO_WARNINGS 1;(比较麻烦)

2)找到VS安装路径,Microsoft VS2019\VC\vcprojectitems\newc++file.cpp,以记事本的格式打开,然后把#define _CRT_SECURE_NO_WARNINGS 1复制进去,在原路径下替换保存(但有可能出现拒绝访问的情况)

3)下载notepad++,然后把newc++file.cpp以Edit with notepad++的形式打开,然后把#define _CRT_SECURE_NO_WARNINGS 1复制在第一行,进行保存,如果出现提示就选择重新启动notepad++进行保存即可,这样以后每次新建项目都会在第一行自动出现#define _CRT_SECURE_NO_WARNINGS 1

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

(1)作用域scope:程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效可用的,限定这个名字的可用性的代码范围就是这个名字的作用域。
即:局部变量的作用域就是变量所在的局部范围,全局变量的作用域是整个工程。
(2)生命周期:变量创建到销毁之间的一个时间段
即:局部变量是进入作用域开始,出作用域结束;全局变量的是整个程序的生命周期。

5.常量

(1)字面常量

int main()
{
    3;//字面常量,从字面意思上理解就是一个常数值
    100;
}

(2)const修饰的常变量

int main()
{
    const int num =1;//num是const修饰的常变量,本质为变量,但具有常属性;
                    //需要使用常量的地方不可以用,但可以表达一个不变的量
    printf("%d\n",num);//打印结果为1
    num=2;//此时num是常变量,等于1;1无法被赋值为2,因此此句会报错
    printf("%d\n",num);//此句就无法被执行了
}

(3)#define定义的标识符常量

#include<stdio.h>
#define MAX 10;//此时MAX被定义为数值为10的标识符常量
int main()
{
    int arr[MAX]={0};
    printf("%d\n",MAX);//打印结果为10
    return 0;
}

(4)枚举常量(可以被一一列举出来的常量,性别,三原色,星期等)

enum Sex
{
    MALE;//其值为0;这三个常量就是枚举常量,之后不可再改变
    FEMALE;//其值为1
    SECRET;//其值为2  
}
int main()
{
    enum Sex s=MALE;//s赋值只能是枚举常量之一,枚举常量不能改,但变量s可以改变
    printf("%d\n",MALE);//打印结果为0
    printf("%d\n",FEMALE);//打印结果为1
    printf("%d\n",SECRET);//打印结果为2
    return 0;
}

至此,本部分结束。因为对编程及计算机语言没有太多的基础,所以写的过于详细,主要作为我个人的学习记录,也希望能帮到跟我一样零基础但是想学习编程的同学。

;