C语言初阶——手把手教零基础/新手入门(万字心得笔记)

本文是一篇针对C语言初学者的教程,作者分享了自己的学习心得和知识点,包括编译器的选择、C语言基础、变量、常量、数据类型、作用域和生命周期、字符串、转义字符、选择语句、循环结构、函数以及输入输出函数的使用。文中还强调了动手实践和理解变量作用域的重要性,同时提到了数组、操作符、关键字、指针和结构体的基础知识。
摘要由CSDN通过智能技术生成

前言

作者将把C语言的知识要点,学习心得以文章形式发表,由于作者目前还是一个菜鸟,难以避免错误和存在观点片面的时候,非常感谢读者指正!希望能在这里与大家共同进步,早日成为大牛!

本系列(初始C语言)只是简单介绍每个知识点、C语言的基础知识,意在使读者(还有自己)大概了解C语言。

写在前面

        “日志”以及“写在最后”是我在同一天写的,如果想听“没用”的废话,那就翻到最后吧:)

        这是我第一篇也是我热度最高的博客,虽然远不及大佬的博客,我会一直努力。它倾注了我作为初学者,虽只有浅薄知识但却拥有这个这个年纪最热血的情感。它粗糙不堪,许多同学耐着性子读它,也细心地发现了不少问题,非常感谢!同时我希望大家学习的时候也能一起修修补补它,虽然它只是块破布,但我一定会因为它是大佬们的垫脚石而感到开心。

        我希望我的语言不要像专业书那样让人眼花缭乱,所以除了必要的专业词汇,我尽量以“人话”解释一些语法。

日志

    22/9/1:

在函数版块新增了C语言输入和输出的两个函数,以及它常用的格式(oj题和考试可能会遇到的)。

修正了三(2)中存储单位换算,原来少了KB和MB。

    22/9/4:

修正了打印函数中左右对齐的描述。

    22/10/3:

    增加了对const的理解叙述。

一、C语言是什么?

        C语言是是一门经久不衰的计算机编程语言,万物始于C,学好C语言,能让我们为编程之路打下坚实基础。(我也不知道写什么,反正非常重要就对了)

二、开发环境

1.编译器

        我们把计算机编程语言称之为高级语言,那什么是低级语言呢?

        在中学物理我们知道:电子元件只能传达"开"或"闭"两种信息,所以电子元件(即晶体管)之间也只能用这两种方式通信。人们把"开"用1代替,把"闭"用0代替。电子计算机在初期时,只能识别0和1两种信号,所以那个时候只有科学家才能进行编程工作,这在那时候是十分困难的。

        上面提到的0/1信号,正好为二进制提供了用武之地,所以我们把最基本的、计算机能够直接读取的语言称之为低级语言。

        在这里,低级语言就是一串由0和1组成的东西,它转换成汇编语言,进而转换成高级语言,才被我们大多数人学习。

        编译器的作用就是把上面的过程反过来,将我们人能看得懂、接近自然语言的、而且能写出来的高级语言转换成机器能够读懂的低级语言。

        笔者最初使用的编译器是Dev C++,然后是Visual  Studio 2019。我比较喜欢VS2019,因为它在我写代码的同时能用中文提醒我的错误,但有时候才vs不能通过的代码反而在Dev C++里能通过,所以目前我以vs为主。

        如果有同学刚接触C,我建议先使用Dev C++吧,熟悉一下编程环境,如果已经有一定基础了,直接上vs2019吧。

三、初始C语言

1.第一个C语言程序

下面以Dev C++为例

(1)先新建源文件:文件->新建->源代码

图片

 (2)写预处理命令,写主函数,建立基本框架

图片

         尖括号(<>)中的stdio.h叫标准输入输出函数,即standard input output.header

        #include是一种预处理命令,它的作用是找到尖括号(或者英文双引号)中的文件,并将它包含到当前文件,被包含的文件中的文本将替换源代码文件(就是我们正在编写的东西)中的#include指令。

         看到上面那段话是不是很懵呢,说白了:<>里面的东西有我们等下写代码要用的东西,它所包含的代码会帮我们实现某些功能,它只是个名字,实际上它包含了不少代码。因为那某个功能我们接下来要用很多次,如果每次都把<>里面的东西打出来,就太麻烦了!而#include就用一行代码代替了这么多代码,是不是方便了许多?

举个栗子 

         如果接下来我们要用到从键盘输入或从屏幕输出,那我们就需要#include<stdio.h>来简化我们实现输入和输出功能的步骤。

        这里说得有点啰嗦,我刚接触这个的时候很懵:为什么每个函数都要加上#include<stdio.h>呢?为什么啰嗦这么多呢:如果有初学者看到我的文章,那我希望他能懂:D

        忘了说了,第二种主函数这种写法已经是远古版本了,最好写第一种。

        一个程序/工程只能有一个主函数(  main()),它是程序/工程的入口。注意main不要写成mian!!

2.数据类型

char//字符数据类型//就是不是数字的字符

short//短整型//就是数字小(绝对值)的整数,很少用

int //整型//就是整数

long//长整型//就是数字(绝对值)大的整数

long long//更长的整型//很少用

float//单精度浮点数//就是小数

double//双精度浮点数//小数位数多的小数

§ 为什么会出现这么多类型?

——因为我们现实生活中要用到整数,小数呀

§ 那为什么整数有int 和 short 还用long、long long,小数有float、double这么多种类呢?为啥不只用一种数据类型来表示呢?

——这个问题问得好(精神分裂ing)。单看英文字母和中文字符的复杂程度应该不难猜想:不同字符在计算机中所占大小是不同的,让我简要介绍计算机中的储存单位:最小的单位是bit,8bit = 1Byte,1024Byte = 1KB,接着是MB,GB,TB等。bit(比特)是最小单位。这里说个题外话,不少人在办理宽带有这样的困惑:为什么我明明买的是200M宽带呀,为什么最高才十几二十兆每秒呢?原因是:运营商所宣传的200M宽带实际上是宽带接入的速率为200Mbps,这里的B指的是Byte(字节),换算下来200M宽带理论上峰速为25.6MB/s。这不重要,知道就好,让我们跳回来。事实上,不同数据类型在内存中所占大小是不一样的,如果用大小的盒子装蛋糕,蛋糕有大有小,难免造成空间的浪费,所以人们规定了不同的数据类型,以便空间被物尽其用。

        在这里有一个很重要的思想,我称之为黑屋思想:把内存想象成一个个小黑屋,里面存放着我们想要存进的东西,也存着我们不能动的东西,当然也存着我们想取的东西。

2.1 数据类型的长度

图片

        这里用sizeof()判断数据类型或者表达式长度的运算符,sizeof()不是函数,后面会介绍(好像也没什么介绍的= =)。

        C语言规定sizeof(long long) >= sizeof(long),其他以此类推,上面的结果因编译器和操作平台而异。

3. 变量 && 常量

生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)

有些值是可变的(比如:年龄,体重,薪资)。

3.1 如何定义变量

如 3.2.1图

格式如下:变量类型  (空格)变量名(自己起);

        最好初始化变量,避免脏数据影响后续调试,如 int a = 0;如果变量名有实际含义,最好用对应的英文(再不行就拼音,或英文简写)表示,后续也会明白。  

3.2 变量的分类 

1.局部变量 && 全局变量

 

图片

         顾名思义,全局变量就是整个工程都能用的,而局部变量只能在{}内部使用,这里的{}不仅限于主函数的大括号,在后面的循环或判断语句中的{}也同样适用。

//如果全局变量和局部变量名字一样呢ÿ

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天若有情673

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值