C语言学习--初始C语言01
Posted 庸人冲
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言学习--初始C语言01相关的知识,希望对你有一定的参考价值。
一个编程菜鸟的学习之旅
刚刚入门学习编程,目前在学C语言,希望能通过写BLOG的方式,整理回顾自己学习的知识,同时也把自己在学习中遇到的一些坑记录下来,希望能帮助到同在自学中遇到同样问题的小伙伴,如果文章中有存在问题的地方,还恳请各位大佬批评指正。
一、自我介绍
大龄追梦人,与社会脱轨了5年时间(不是被关进去),妄想通过自学能改变现状。
二、学习目标
1. 总体目标
通过学习能成功转行就业。
2. 学习目标
现阶段在学习C语言,通过学习,要求自己能对C语言有一个较为深入的了解,为下一步的学习打下坚实基础。
三、学习规划
目前属于脱产学习,时间充裕,但是也不能浪费时间,毕竟年纪不小了。因此我把自己的学习划分为下面几个阶段:
- C语言
- 离散数学
- JAVASE
- Linux基本操作
- 数据结构与算法
- MySQL数据库
现阶段给自己定下的学习任务大概这么多,基本都是基础的知识。随着学习的升入,会进行调整。当然向离散数学这样的通用基础知识,之前欠下的东西太多,只能一点一点从零开始补起来。
四、最想进的公司
大厂就不想了,想也没戏,起点太低。目标是能在自己的条件范围内,寻找一家相对不错的公司成功转行就可以,也就是能找到工作就算追梦成功了,哈哈。
笔记部分
好了废话就不多说了,纪录下这两天的学习内容,并整理下笔记吧,以下内容大部分会用自己的语言去组织描述,可能会显得臃肿甚至是错误,如果出现错误的地方,还请各位大佬批评。
DAY1~DAY4初识C语言学习导图
一、第一个C程序
估计自学C的小伙伴,第一个C程序都是Hello World
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
printf("Hello Wolrd!");
return 0;
}
接下来每一行解释它们的作用:
#define _CRT_SECURE_NO_WARNINGS 1
这行代码是解决在调用某些函数时VS会报错的情况,VS认为例如scanf()这样的函数是不安全的,而它提供了一种更安全的函数scanf_s(),如果要忽略这个报错就需要在首行 声明上面这段代码。(这段代码的自动生成方式在文章末尾给出)
#include <stdio.h>
C语言在调用库函数时需要.h结尾引用头文件,个人理解是头文件里面封装了C语言提供给开发人员的各种常用函数。
stdio 就是 standard input & output 标准输入输出,例如printf();打印函数 与 scanf(); 输入函数都需要用到这个头文件。
int main()
{
printf("Hello Wolrd!");
return 0;
}
- int 表示声明的这个函数的返回值是整形 intager。
- main() 函数表示一个程序的入口,main函数在整个工程中必须出现也只能出现一次。而**()**里表示main函数的参数,可以为空,也可以写成 main(void) 含义相同。
- printf(); 打印函数()里是需要打印的内容;
- return 0; 程序结束的返回值,与前面的int相呼应,
注意:如果函数名前面是char、double等类型,return的返回值也必须是对应类型的值。
二、数据类型
C语言的基本数据类型包含字符型、整形、浮点型。
1. 字符型
char letter = 'a';
关键字为char 所占内存空间为1字节 == 8位,也就是只能存储一个字符,用单引号 ’ ’ 引起。
取值范围
有符号位:-2 ^7(-128) ~ 2 ^7 - 1(127)
无符号位:0 ~ 2 ^8 -1 (255)
符号位
数据类型的最高位用来表示数据的符号位
-最高位为1,表明这个数为负数
-最高位为0,表明这个数为整数
这里不深入展开。
2. 整形
整数又分为short、int、long、long long,每种类型向内存申请的空间大小不同。
(1) short
short age = 18;
关键字short或short int ,占用内容大小2字节,数字类型不需要用引号包含。
取值范围
有符号位:-2 ^15(-32 768) ~ 2 ^15 - 1(32 767)
无符号位:0 ~ 2 ^16 -1(65 535)
(2)int
int num = 10;
关键字为int ,占用内存大小4字节。
取值范围
有符号位:-2 ^31(-2 147 483 648) ~ 2 ^31 - 1(2 147 483 647)
无符号位:0 ~ 2 ^32 -1(4 294 967 295)
(3)long
long num = 99999
关键字为long或long int, long的取值范围C语言规定只要大于int即可,占用内存大小是4/8字节,在VS上typeof() 打印显示是4个字节
取值范围(4字节)
有符号位:-2 ^31(-2 147 483 648) ~ 2 ^31 - 1(2 147 483 647)
无符号位:0 ~ 2 ^32 -1(4 294 967 295)
取值范围(8字节)
有符号位:-2 ^63(-9.223372036548e+18) ~ 2 ^63 - 1(9.2233720368548e+18)
无符号位:0 ~ 2 ^64 -1(1.844674407371e+19)
(4)long long
long long num = 99999999999
关键字为 long long 或 long long int,占用内存大小8个字节。
取值范围
有符号位:-2 ^63(-9.223372036548e+18) ~ 2 ^63 - 1(9.2233720368548e+18)
无符号位:0 ~ 2 ^64 -1(1.844674407371e+19)
3. 浮点型
浮点型也就是带小数点的数字类型,小数点可以作用浮动(科学计数法),因此叫浮点型吧(个人臆想)。
分为float单精度浮点型和double双精度浮点型
浮点型只存在有符号位数
(1)float
关键字为float,占用内存空间大小为4字节。
float fl = 1.234;
取值范围
-/+3.4e38(精确到6位小数)
(2)double
关键字为double,占用内存空间大小为8字节。
double db = 1.234567;
取值范围
-/+1.7e308(精确到15位小数)
4. 打印不同数据类型的格式符
格式符 | 作用 |
---|---|
%d | 打印十进制整形 |
%c | 打印字符 |
%s | 打印字符串 |
%lf | 打印双精度浮点数 |
%p | 以地址的形式打印 |
%x | 打印16进制数字 |
… |
三、变量
变量: 可变的量,用来向内存申请一块空间存放值,通过变量名来读取或写入对应内存块中的值。
1. 变量的定义方法
#include <stdio.h>
int main()
{
// 类型 变量名 = value;
short age1 = 20;
// 向内存申请了2byte的空间命名为age1,用来存放整形
float weight = 95.6f; // f表示单精度浮点
// 向内存申请了4byte的空间命名为weight,用来存放浮点数
}
2. 局部变量和全局变量
全局变量
定义在代码块{}之外的变量,也就是不被{}包含的变量都是全局变量。全局变量的作用域是整个工程。
局部变量
定义在代码块{}之内的变量,局部变量的作用域就是它所在的代码块,也包含嵌套的代码块{}
#include <stdio.h>
int global = 2021; // 全局变量 -- 不被{}所包含
int main()
{
int local = 2019; // 局部变量 -- 定义在代码块{}之内的变量
int global = 2020; // 局部变量
// 局部变量和全局变量名字相同时,可以同时存在,局部变量优先(建议不要相同)
printf("global = %d\\n", global); // 2020(就近原则)
return 0;
}
总结
今天大概就写到这里了,第一次写blog确实非常困难,在梳理知识点的时候会发现自己存在很多不懂的地方,写的也是磕磕盼盼。不过万事开头难,好的习惯需要长期的积累与养成,加油,共勉吧!
记录在学习过程中遇到的一些问题
每次总结一下自己遇到的问题,防止同样的错误再次发生。
1. 下载VS2019,安装时却是VS2017的一种解决方法。
在第一次安装VS时,就遇到了一个小问题,自己在官网下载的明明是vs2019,安装时显示的却是vs2017,在网上查阅后,有一种简单的解决办法,碰到类似问题的小伙伴可以参考一下。
- 在官网下载Professioanl 版本
- 点击安装包等到VS installer安装完毕
- 出现下面的对话框,在可用选项里,红框标注位置会看到Visual Studio Community 点击安装,(因为我已经安装过了,所以没有这个选项)
- 后面的安装步骤就和正常一样了,这里就不在赘述了。
2. #define _CRT_SECURE_NO_WARNINGS 1 自动生成方式
-
找到VS安装路径下的newc++file.cpp文件
-
打开文件将#define _CRT_SECURE_NO_WARNINGS 1 粘贴进文本内保存即可。
-
保存可能会提示没有权限,解决方法:
3.1 可以通过修改上级文件夹的用户权限来进行修改
右击属性–>安全–>编辑–>选择登录用户–>添加修改权限
3.2 或者是使用Notepad++这样的文本笔记器进行更改。
3.3 或者打开VS时以管理身份运行,找到对应文件修改即可。
3. scanf(); 打印函数里不要加转义字符\\n。
特别是输入值作为判断条件时,加了\\n 后,判断条件就不成立了。被这里坑了两次,自己明明输入的值没有问题,可就是进不去if语句,因此在这里提醒下自己,事不过三。
4. 引头文件需要加.h后缀
这个问题特别无语,报错后看了好久代码都没有发现哪里出错了,希望大家不要向我这样粗心。
以上是关于C语言学习--初始C语言01的主要内容,如果未能解决你的问题,请参考以下文章
C语言基础学习笔记六初始指针(重点必看)(详细讲解+代码举例+练习巩固)