今天是开始认真学习C语言的第一天,打算以后每次学习以后都来这里整理一下学习的内容。使用的软件是Visual Studio2022,今天主要学习内容是郝斌老师C语言教学视频的P1-P30,笔记囊括老师上课所用大纲内容和我吸收到的知识。
tip0: 如果使用Visual Studio2022时无法正确使用scanf函数该怎么做:
使用过程中会遇到'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.的情况,译为:'scanf':该函数或变量可能不安全。可以考虑改用scanfs_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。详细信息请参见在线帮助。
方法一:为解决该问题应该第一行上(注意独立的第一行)加上 : #define _CRT_SECURE_NO_WARNINGS 1 (注意define后面是两个空格)加完以后就可以正确使用了
方法二:※※※源文件.c的创建时都拷贝自newc++file.cpp文件,在该文件中加上上述就会彻底解决该问题。搜索newc++file.cpp文件(可以使用everything软件加快搜索速度),注意路径是下面的样子,不要选错了。
右键打开路径,将该文件拷贝一下,可以放在桌面上,打开该拷贝后的文件,输入:
#define _CRT_SECURE_NO_WARNINGS 1 (注意define后面是两个空格)再保存退出,再将该拷贝后文件复制粘贴回原文件夹,点击覆盖文件即可解决该问题,从此以后再新建源文件既可自动在第一行显示上述代码,并不会提示scanf不可用了。
tip1:cpu 内存条 硬盘 显卡 主板 显示器之间的关系:
数据首先存储在硬盘上,当调用数据时,操作系统将数据从硬盘调用到内存条中,cpu再去处理内存条的数据,将一些数据处理成图像、声音等。图像通过显示器,声音通过声卡显示出。主板提供了各硬件的传输。
tip2:C语言程序如何运作的:
c语言程序通过编译.c文件和链接.obj文件生成后缀是.exe的可执行文件,软件请求操作系统执行exe文件,操作系统调用cpu执行exe文件,后将结果显示到显示器上。(现在程序不能直接访问硬件,只能通过操作系统来操纵。)
tip3:数据类型:
基本类型数据
整数
整形: int -4字节
短整型: short int -2字节
长整型: long int -8字节
浮点型(实数)
单精度浮点数 float -4字节
双精度浮点数 double -8字节
字符
char -1字节
复合类型数据
结构体
枚举
共用体
(C语言中用整形变量可以存放实数,会警告,但不会报错,也无法输出)
(一般用n、m、i、j、k等表示int类型变量;c、ch等表示字符类型变量;a等表示数组;p等表示指针;i、j、k等可以表示循环变量,其他字符变量名尽量不要使用。)
tip4:变量:
变量的本质就是内存中一段存储空间。
tip5:cpu 内存条 软件 操作系统的关系:
定义变量后,软件请求操作系统在内存中找到空闲的存储空间,将变量分配到该存储空间,地址一一对应关联起来,赋值后,将赋值结果存放在该地址的存储单元中,以后使用变量就是使用内存中对应的存储空间。
tip6:变量为什么必须初始化:
所谓初始化就是赋值的意思。
当变量使用完毕后,会释放该存储空间,即可以让其他变量使用该空间,其空间内的数据并不会被清除。未初始化的变量的存储空间可能之前被其他软件使用过,可能存在遗留的数据即垃圾值,有的软件发现变量的数据时垃圾值时会显示填充数字提示操作者,有的软件会直接报错。
(硬件的设备一定是1、0或1和0的组合)
tip7:定义变量:
数据类型 变量名 = 要赋的值
等价于 数据类型 变量名;
变量名 = 要赋的值;
int i = 3 ; 等价于 int i ; i = 3 ;
int i =3 , j = 5 ; 等价于 int i ; int j ; i = 3; j = 5;
tip8:进制:
进制就是逢几进一。(几进制就是没有几,如八进制没有八,最多就是七)
1234B为二进制数1234,也记为
2345O为八进制数2345。
3456D为十进制数3456。
5678H为十六进制数5678。
十进制:逢十进一 基数 0 1 2 3 4 5 6 7 8 9
二进制:逢二进一 基数 0 1
八进制:逢八进一 基数 0 1 2 3 4 5 6 7
十六进制:逢十六进一 基数 0 1 2 3 4 5 6 7 8 9 a b c d e f
计算的时候,最后第几位就是进制数的(几-1)次幂,如八进制的123就是3*8的零次幂+2*8的一次幂+ 1*8的二次幂
tip9:常量在C语言中的表示:
1、整数
十进制:传统写法
十六进制:前面加0x或0X(区别是后面是a-f还是A-F)
八进制:前面是0 (数字零)
2、浮点数
传统写法
float x = 123.45
科学计数法
float x = 123.45e2 值为12345
float x = 123.45e-2 值为1.2345
3、字符
单个字符用'单引号'括起来 'A'正确 'AB'错误
字符串用"双引号"括起来 “AB”正确 "A"正确代表'A' '\0'的组合
tip10:常量以怎么样的二进制代码存储在计算机中:
整数是以补码的形式转化为二进制代码存储在计算机中的
实数是以IEEE754标准转化为二进制代码存储在计算机中的
字符的本质实际也是与整数的存储方式相同
tip11:代码规范化:
1、(){}等等成对敲,敲完再添加括号内的内容
2、地位相等不缩进,如果在其他代码内部要缩进
3、定义变量、对变量进行操作、输出值三个功能间换行
4、运算级别最低敲空格
tip12:字节:
字节就是存储数据的单位,并且是硬件所能访问的最小单位。(最小的存储数据的单位是位)
1字节 = 8位
1K = 1024字节
1M = 1024K
1G = 1024M
1T = 1024G
tip13:不同类型数据之间相互赋值的问题
int i = 12;
long j = 12345;
i = j;(C语言可以转换)
C语言的强制转换后续学习(补码)
tip14:ASCII
ASCII规定了不同的字符是使用哪个整数值去表示
'A' -- 65; 'B' -- 66; 'a' -- 97; 'b' -- 98; '0' -- 48
tip15:字符的存储
字符本质上与整数的存储方式相同。