本文对C语言基础入门知识进行了粗略的讲解,带你了解一下基本的大纲,画出导图系统论述写出的过程令我受益颇多,为了不浪费大家时间你可以预先选择一个你感兴趣的目录查看下讲解是否正确以及能否有那么一点的启示,然后再看看其他内容的讲解,写到的地方都超乎的详细,愿能给你带来一丝明悟,若有错误之处欢迎提出指正
这篇文章绝大大部分知识都涉及了 进制内存方面的知识 在这里一言两语数不清,因此重新写了一篇专门进行讲解 点击 内存、进制模块详讲 跳转观看
printf("感谢观看!\n");
目录
文章思维导图
一、变量
1.常见数据类型
相信小伙伴在入门编程的时候一来就会遇见该类语言数据类型的学习,不知道你们有没有想过其中的缘由?在计算机编程语言学习过程中,无论选择哪一门语言都首先要学习该语言规定的数据类型,它构成了整个计算机的大厦。计算机最擅长的就是计算,一切大大小小的问题根本上最后都是由计算解决的,而计算需要有数值,有地方计算,类比生活中 整数,小数,计算机里面也规定了字符型,整形等,至于为什么规定数据类型就像你问生活中为什么需要整数,小数一样,计算机的根本就是计算,我们日常遇见的关于计算的小问题不外如是,即使知道你也不会刻意去定义数据类型的概念,同理生活中的一切由计算机完成的工作也是由大大小小的计算实现,故而不同于人类,要想计算机准确无误的按照要求为我们服务,它的每一个定义都需要有严格的标准,数据类型的定义与应用必不可少,它好比从小就开始学的1、2、3一样,价格我们常用小数、年龄我们用正整数,这些细化都是为了给贴合实际的解决问题,入门的知识必定是以后学习最重要的构成部分...
对应于生活中的列数式计算,数据类型规定了数值类型计算的地方和数值的类型,而需要运算的数值也就是我们接下来会提到的变量 ,它往往就是我们解决实际问题所需要运算的值,它们被存放在 各种数据类型定义的空间里,而计算机的空间不可能无限制的给下去,因此每种类型都对应有一定的大小,点击 内存、进制模块详讲 跳转观看 深入了解计算机变量内存的分配原理,并且在运算完之后就会回收相应的空间,下文提到的变量可行域和生命周期。这里我们通过sizeof()操作符求它们各自规定的大小
相信很多人在初学的时候都有这样的疑惑,这里求得的大小是什么大小,虽然知道是内存大小但是知道的也不具体,由以下图知(至于更大的单位倍率都是*1024)
而这里sizeof()求得的是字节 byte 具体的请见后面 移位操作符
以及打印函数printf()里面为什么这样写
''%d\n'' 是什么意思? 其实这里%d 是一种操作符 意思是需要打印的内容类型是整数型数字 像这样的后面还会讲到其他几个常见的 而'\n'是转义字符 意思是打印的时候换行,避免打印的时候都在同一行,紧凑 不易观察--涉及了下面内容 部分转义字符
2.变量定义及其分类
什么是变量?变量就是一个会改变的量,比如我们记录一个人每天的作息时间时,这个时间就是一个变量,计算机是严谨的,变量定义的时候多一秒少一秒,存放的地方(分配的内存地址)以及定义的地方(可行域)不同都是不一样的,不能想当然。因而有了全局变量局部变量的区别,而我们定义一个变量就是需要用到上面的数据类型,它类似菜市场的菜价,过一段时间可能就会有浮动,因此它是变化的,而我们要具体定义这个量就需要用到数值,即菜的价格,一般菜价都是小数这就是菜价的类型,而变量的定义也类似,这样写
后面的例子 可以尝试着分辨一下 定义的变量 学以致用
全局变量:定义在{}外面的变量
局部变量:定义在{}内部的变量
全局变量与局部变量的优先性:
当全局变量和局部变量同时对一个变量赋值时 以局部变量的赋值优先执行
2.1 变量作用域、生命周期
生命周期:一个变量总不能无限制的使用下去,不仅占用内存而且如果无关紧要的闲置着毫无用处,因而出现了生命周期的概念,我们知道 人的生命周期就是从出生到死亡,同理 变量的生命周期也是从创建到销毁。局部变量的生命周期就是{ } 范围内只要使用完了 它就经历了创建到销毁 以便高效率的利用,而全局变量的生命周期对应于整个工程 意思就是只有工程销毁了全局变量的生命周期才算结束
作用域:作用域就是变量能够作用生效的范围,由上可知作用域及生命周期概念的提出无一不是为了提高运行效率及减少内存占用,故而都是按照需求定义变量的类型,只在一个地方用到的变量就无须建立成全局变量
看上图 可知 当我们在解决方案这里右键添加项目的时候 所创建的就是一个工程,在图中3.草稿就是一个工程。因此里面的 main.c/test.c 就都属于这个工程 即全局变量在两者之间都有效
例
我在 mian.c 里面也能使用该全局变量 不过需要 extern 进行引用,这里记住全局变量的引用需要这个函数就行,它就类似于我们使用 printf()函数的时候 需要在开头加一个 #include<stdio.h>库函数一样,用人家的总得给人家说一声 即 声明使用
二、字符串及数组
1.数组
1.1 数组定义
定义:数组就是一串相同类型数据的集合
那数组存在的意义是什么? 其实数组最直观的例子就是Excel,不难发现,生活中大大小小的统计都涉及到了数组,一个班级的人统计家庭住址这时你的信息就是一组数,注意:这里一组数是代指,并不只是数还能是其它类型,文本型,浮点型等,因此这里在此说明了开篇数据类型的重要性,数组也有数据类型,而类型也和变量的一样
下图是数组的定义
留意一下的是,数组的大小不能为0,既然得存放一些数据肯定不能是0,下面还有实时存储使用类的数组,类型不固定 看情况使用
我们刚才实现了将相同类型的一组数据的存储,那存储的意义是什么?不就是方便自己更好的查看吗,那如果我需要将里面的数据取出来那么多数据应该怎么取?瞎猜?这里就定义了数组的下标,下标从左边开始到右边结束,下标从0开始,如图
1.2数组使用:
殊途同归 我们储存的数据总归是以后有用才会进行储存,因此数组的使用说到底就是相同类型数据储存和提取
下面我们以打印 1---10 为例进行数组内容的打印(涉及了后面选择、循环语句内容)可以跳到后面做个了解回来观看
正序打印数组内容 将内容按照下标序号依次打印出来
同理逆序打印
2. 字符串
定义:字符串是什么,就是一串字符的集合 字符就是单引号