声明在前
图中用于展示程序代码的软件是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;
}
至此,本部分结束。因为对编程及计算机语言没有太多的基础,所以写的过于详细,主要作为我个人的学习记录,也希望能帮到跟我一样零基础但是想学习编程的同学。