我们继续第二模块初识C语言的学习,上一篇笔记当中我们详细讲解了什么是C语言 以及第一个C语言程序。本篇笔记中我们继续从数据类型开始学习,后面的内容还包括:数据类型 、变量与常量 、字符串+转义字符+注释 、选择语句 、循环语句 、函数 、数组 、操作符 、常见关键字 、define 定义常量和宏 、指针 、结构体。
第二模块 初识C语言
三、数据类型
/*
为什么要写代码?
答——写代码是为了解决生活中的问题
购物:网上商城——模拟现实生活中的购物(商品陈列、商品的价格、购物、结算)
当我们要描述清楚这些数据,需要非常明确的数据类型,不同的类型去描述不同的数据
*//*
那么C语言中的数据类型:
char —— 字符数据类型
short —— 短整型
int —— 整型
long —— 长整型
long long —— 更长的整型
float —— 单精度浮点数
double —— 双精度浮点数
*///使用一段代码去验证每种类型的大小
#include<stdio.h>
int main()
{printf("%d\n", 100); // %d 代表打印10进制的整数// sizeof 函数用来计算内存空间的大小// \n 是一个转义字符,用来实现换行printf("%d\n", sizeof(char));printf("%d\n", sizeof(short));printf("%d\n", sizeof(int));printf("%d\n", sizeof(long));printf("%d\n", sizeof(long long));printf("%d\n", sizeof(float));printf("%d\n", sizeof(double));return 0;
}
//以上打印的结果(1 2 4 4 8 4 8)的单位是字节,数据是存放到内存中的
//C语言规定sizeof(long) >= sizeof(int),不同编译器对sizeof(long)运行结果可能会出现不同/*
计算机单位
比特 bit —— 计算机能识别的最小二进制指令
字节 1 byte = 8bit
1 KB = 1024 byte
1 MB = 1024 KB
1 GB = 1024 MB TB 、PB ……
*//*
我们在VS 2022中运行上面的代码会出现C4477的警告
“printf”: 格式字符串“%d”需要类型“int”的参数,但可变参数 1 拥有了类型“size_t”
因为VS 2022这款编译器的原因,我们最好将 %d 改为 %zd
这样运行起来,警告就会取消了
*/#include<stdio.h>
int main()
{printf("%zd\n", sizeof(char));printf("%zd\n", sizeof(short));printf("%zd\n", sizeof(int));printf("%zd\n", sizeof(long));printf("%zd\n", sizeof(long long));printf("%zd\n", sizeof(float));printf("%zd\n", sizeof(double));return 0;
}//总体而言,存在这么多的类型,其实是为了更加丰富的表达生活中的各种值。
//这些值我们在编程语言中使用变量来表现。/*
创建变量的具体方法:
数据类型 变量名称 = 初始化的值;
具体的使用方法及示例我们会在下一个目题中详细的介绍
*/
四、 变量与常量
(一)、变量的创建与命名
/*
生活中的有些值是不变的,比如说圆周率、性别、身份证号等
也有些值是可变的,比如说年龄、体重、薪资等
C语言规定,不变的值称为常量,变的值称为变量。
*//*
· 定义变量函数的方法:
变量类型 变量名称 = 初始化的值;
我们对变量命名的时候,最好也要使用一些有意义的名称
我们创建变量的时候,一定要初始化,否则有一些编译器会报错。
· 当我们使用printf打印变量的时候:
&d 用来打印int类型
%f 用来打印float类型
&lf 用来打印double类型
*//*
关于变量的命名:
1、只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2、不能以数字开头。
3、长度不能超过63个字符。
4、变量名中区分大小写的。
5、变量名不能使用关键字。
*/#include<stdio.h>int main()
{//存放一个人的年龄10岁int age = 10;printf("%d\n", age);//存放一个人的薪资是5000float salary = 5000.0f;printf("%f\n", salary);//如果想限制小数点后位数,可以如下表示/*语法规定 %.xf 或者 %.xlf 中的 x 可以规定小数点后保留几位小数如果不做设置,则默认小数点后保留六位小数*/printf("%.2f\n", salary);//也可以使用double去定义浮点数,数据结尾就无需f了double money = 5000.0;printf("%.2lf\n", money);char ch = 'w'; //定义一个字符类型int a = 0; //定义一个整型并进行初始化a = 10; //修改这个整型的值printf("%d\n", a);// =打印的值为10,实现了变量值的修改return 0;
}
(二)、变量的分类及基础使用
#define _CRT_SECURE_NO_WARNING//变量分为局部变量和全局变量#include<stdio.h>
int num1 = 1000; // 全局变量
int num = 10; //全局变量
int main()
{int num2 = 1; // 局部变量int num = 0; // 和全局变量名字一样的局部变量printf("num1 = %d\n", num1);//打印一个全局变量printf("num2 = %d\n", num2);//打印一个局部变量//当全局变量和局部变量名称相同的时候,打印局部变量优先printf("num = %d\n", num);return 0;
}//变量的使用——实现实现两个整数的相加#include<stdio.h>int main()
{int num1 = 0; //定义第一个变量int num2 = 0; //定义第二个变量//用户输入数据printf("请输入两个数字,请用回车键分割:\n");scanf("%d %d", &num1, &num2);//进行计算int sum = 0;sum = num1 + num2;//打印计算结果printf("%d + %d = %d", num1, num2, sum);return 0;
}/*
上面这段代码如果在VS2022上第一次编译,是会出现C4996的错误的
'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
这是因为VS编译器认为scanf这个函数是不安全的,建议使用scanf_s来替换
但是scanf_s仅仅是在VS中使用的,也就是不可以跨平台使用,因此我们依旧建议使用scanf函数
具体操作方法为在整个项目的第一行加上
#define _CRT_SECURE_NO_WARNING
VS中不仅只是scanf函数出现这个报错,所以我们在所有源文件的第一行都加入这个预处理便可以有效的在以后得编程中避免 C4996 的报错的
具体操作方法如下:
1、使用everything工具搜素 newc++file.cpp ,右击鼠标——打开路径
2、将该文件复制到桌面上,然后便可以正常修改,在其内容的第一行写入 #define _CRT_SECURE_NO_WARNING
3、再将修改好的文件拷贝会原路径下即可
这样以后创建的文件中都会默认有这句预处理了
*/
变量与常量的内容并么有结束,考虑到篇幅原因,我们本篇笔记暂时结束到这里,后面的内容我们会在下一篇笔记中再详细讲出。