初识C语言—C语言常见概念

本文指导新手快速理解C语言,推荐VS2022和Devc++编译器,介绍第一个程序HelloWorld,讲解预处理、stdio.h和基本函数。强调注释的重要性。

本文概况

        创作这篇文章的主要目的是,让从未接触过电脑的小白,能够快速的了解C语言,理清学习一门计算机语言的思路,树立起一门语言意识,让读者能快速上手C语言。本文仅供读者参考,如果有错误的地方请多多指教,或者认为自己有更好的方法,非常欢迎大家在评论区里文明留言。另外,因为本人写作比较少,可能会出现语法错误,阅读起来不流畅,如果真的出现这种情况,还请读者多多包涵,当然我写完后尽量抽时间仔细比对两遍再发。


一、编译器的选择

        新手在学习C语言的过程中,最避不开的是代码风格养成,要养成好的代码习惯就必须要有一个好上手的编译器,所以对我们来说,选择好一款优质的编译器是非常重要的。如今市面上的编译器参差不齐,如果选了一款过时了、跟不上时代变化的编译器,到时找工作了到公司很有可能会出现难以适应的情况。

        在此我将列出本人比较推荐的编译器,供大家参考借鉴,希望大家结合自己电脑情况妥善选择。

windows用户

1.VS2022

        这款编译器可以说是Windows端所有编译器当中最全面的编译器,能够为用户提供更优质的服务,同时也是企业里用的最多的编译器。但缺点是功能太全,占用内存很高,如果电脑配置差,很可能运行不起来。如果你电脑配置比较高的话,非常推荐使用这款软件。另外,这款软件对新手并不是很友好,建议先去B站看看安装教程,再动手安装。这里推荐两个视频链接如下:

vs2022(Visual Studio 2022)权威指南&&C语言&&软件工程开发的方向&&技巧要领_哔哩哔哩_bilibili

VS2022安装使用教程,Visual Studio 2022详细安装使用调试教程C语言编译器,C++编译器_哔哩哔哩_bilibili

 第一个链接是弗兰克老师的安装和使用教程,视频时长比较长,内容比较全面,建议有时间的同学去看;然后第二个是比特鹏哥的安装视频教程,内容比较全面,也比较精简,只需要你一步一步跟着走就行。

2.Devc++

        这款工具上手比较简单,兼顾效率的同时又小巧、轻便,很适合新手入门,同时也是很多学校和竞赛电脑首选的编译器。但这款工具就使用起来太过简单了,很多功能都不够完善,所以用起来也会有诸多不便,对良好的代码风格养成也不好,请读者慎重选择。

苹果端

XCode-这款工具是苹果端笔记本最普遍实用的编译器,如果你是苹果用户建议你直接下这款软件,没必要再费心思找其他编译器了。


二、第一个C语言程序

安装完编译器之后就可以上手写代码了,以下是每位程序员入门都要写的第一串代码。

#include<stdio.h>
int main()
{
    printf("Hello world!\n");
    return 0;
}

运行结果如下图所示

输出结果是Hello world!

 如果你看不懂完全不知所云,我们先别着急,因为这很正常,没有人能一蹴而就,更没有人不学就会的。

下面我将带大家一起看看这些代码都说了什么内容。

1.#include

        #include--这是个预处理指令,相当于我们数学中的“解”,编译器会优先看这部分内容,并执行相应程序。另外预处理必须出现在程序的开头,不能把这部分丢到程序的中间或者下方,毕竟是预处理,(总不会有人先上完课才预习的吧?)

2.stdio.h

        这是一个头文件,我们说以.c为后缀的都是源文件,.h为后缀的都是头文件。那么,什么是源文件,什么是头文件呢?

        其实很好理解,源文件就是一项工程的方案,比如要盖一层楼,你的方案就是大楼的起草图,那么头文件就是你要借助或者帮助你完成建造的辅助方案,简单点说就是一个工具。

        好了理解清楚头文件后我们来学习stdio.h,其实stdio.h代表了标准输入输出,在这个头文件中包含了标准输入输出的函数定义。通过预处理,能够在该源文件中无限使用输入输出及其相关函数。<>相当于是把内容括起来,不必要着重理解,自己写的时候记得写上就行。

        那么至此,第一行内容就介绍完了,我们试着将其连起来看看。#include<stdio.h>在编译器的上方写上这么一行,编译器就知道你想说,我在写这个源文件,你必须要帮我把标准输入输出这个头文件加进来(预处理)一下,不然我没法继续。然后计算机就会按你说的乖乖去办。

3.int main()

        int--其实是一种数据类型-整形关键字。我们知道,在我们日常生活中,存储的数字无非就整数、小数,而在计算机中int就是整数类型,即整形。在这里表示main() 函数返回一个整形int,这与大括号{}内的最后一个语句“return 0;”相呼应,至于什么是关键字,以后还会详细为你解释,总之先记住int是数据类型关键字之一。

        main()--()表明这是一个函数。请大家先记住如果看到一个英文单词+()这种形式的语句,优先考虑这是不是函数,当然也会有例外的,比如sizeof()是一个运算符或者说是操作符,这个暂时先不用记住,后面会慢慢接触到。回到main()函数,这是C语言中必须出现的函数,相当于程序的入口,没有这个函数,那程序根本跑不起来。另外值得注意的是,main()函数在工程中只能出现一次,如果在一项工程中main()出现了两次,那么这个程序也是错的。

4.printf();

        printf()-函数。前面说过,出现英文单词+()就应该想到是不是函数,恰好printf()就是一个函数,这是一个标准输出函数,其作用是将"里面的信息打印到屏幕上",<--如这个所示,其输出结果就是,里面的信息打印到屏幕上,读者如果装好了编译器可以亲手验证一下。另外,我们将"字符串"括起来的语句叫做字符串,字符串其实就是字符的集合形状像烧烤,所以叫字符串(奸笑)。你只需要记住字符串出现都必须被"包裹起来"就行。补充一下,单个字符要被''包裹起来,如'A'。

5.return 0;

        return语句。这个语句出现在{}的末尾,是函数的结束标志,上面提到过其中的0与int形成呼应,表示返回一个整形数字0。其实0可以改成其他数字的,你可以返回1可以返回100,但这里为什么要返回0呢?其实是因为0表示正常返回,函数正常结束。当然原因不至如此,到以后学习会慢慢接触到,不必着急。

6.转义字符\n

        \n是C语言中的一个转义字符,首先看到字符我们可以清晰地知道这是个整体,这是个字符。还记得我在第4点介绍字符串时说过的吗?我说单个字符要用''给它包起来,为什么这里不用呢?原因很简单,因为\n能与其他字符一起组成字符串,这也就证明了\n其实是一个字符。那为什么\n没被打印到屏幕上呢?我猜你已经想到了。转义的意思是将原来的意思转变一下,在这里其实就是字符'n'转换一下意思,变为换行。那么如果没有\n打印出来的又是什么呢?

打印结果如上图所示,大家可以自行感受一下 

        至此,我们已经将图片中的代码挨个解释了一番,不难看出,这其实是一个非常简单的程序,仅仅是打印一行信息Hello world!就结束了,但是往往程序越简单就越容易出错,稍不留神写错个字符就可能出bug,甚至是程序崩溃,我们作为新手应该好好适应一下写代码的感觉,慢慢找出自己的不足,比如标点符号是否经常打成中文的、单词会不会经常写错、代码风格会不会给人产生歧义,诸如此类。万事开头难,当你写代码越成熟的时候,你的错误就越来越难被人发现,到那时,你将会感慨,要是当时好好改程序,日积月累,现在哪会出那么多bug!(哭诉脸)


三、注释

1.注释是什么?

        相信大家在写数学题时,用的最多的无疑是草稿纸,草稿纸就相当于自己思考的过程,而最终写进答题卡的往往是最精简的。正因为精简,往往让人难以理解,甚至前一天写出来的题目第二天就看不懂了,而当我们重新拾起草稿纸那一刻,逝去的记忆便会一下涌进脑子。有时候写代码也是一样,当你写了个难以理解的代码时,先别过度兴奋,先别跑去告诉你的朋友,你得先用注释好好解释一波,不然当你炫耀的时候突然忘了这程序怎么跑出来的,到时你朋友都帮你尴尬。

        所以,注释就是一段文字(英文、汉语...),为了让程序员看懂而写的一段解释性文字。内容由自己决定,建议越简洁、表达越清晰为好。编译器会帮你跳过注释的内容,也就是说,被注释的文字无法被编译器识别,但能被人类看到。

2.注释的类型

        注释有两种类型,一种是C语言的,另一种是C++的。

C语言注释形式

         /**/  这个就是C语言的注释形式,只需要把注释内容放到/*这个里面*/就行,这种能跨行注释

 C++的注释风格

        //这种是c++的注释风格,使用这种注释时需要将注释内容写在//后面,如上图所示。这种注释风格非常方便,同时也很容易打,所以这种注释也经常被使用在C语言代码中。

        其实C++语言是在C语言的基础上发展而来的一门语言,故而很多知识点也是相通的,也正因如此c和c++不分家,c++的注释风格也可以在c中使用。


四、做个简单的总结

        本文主要讲了三大方面的知识,首先教大家选一款好用的编译器,为自己写代码提供一个好的环境,windows端推荐vs2022,苹果端推荐用xcode。然后,为大家介绍了每个程序员都要接触到的第一个程序,打印Helllo world!,我们知道了预处理指令;知道了源文件、头文件;也知道了main()函数;同时也了解到了printf()这一个标准输出函数。最后我们说注释是为了能让程序员更容易理解代码而写的,最常用的是C++的注释风格//

        非常感激你能看到这里,写文章能被别人认真读真的是我的福分,希望这篇文章能对你有所收获,哪怕是些许我也就很欣慰了(微笑)。

【轴承故障诊断】基于融合鱼鹰和柯西变异的麻雀优化算法OCSSA-VMD-CNN-BILSTM轴承诊断研究【西储大学数据】(Matlab代码实现)内容概要:本文提出了一种基于融合鱼鹰和柯西变异的麻雀优化算法(OCSSA)优化变分模态分解(VMD)参数,并结合卷积神经网络(CNN)与双向长短期记忆网络(BiLSTM)的轴承故障诊断模型。该方法利用西储大学公开的轴承数据集进行验证,通过OCSSA算法优化VMD的分解层数K和惩罚因子α,有效提升信号分解精度,抑制模态混叠;随后利用CNN提取故障特征的空间信息,BiLSTM捕捉时间序列的动态特征,最终实现高精度的轴承故障分类。整个诊断流程充分结合了信号预处理、智能优化与深度学习的优势,显著提升了复杂工况下轴承故障诊断的准确性与鲁棒性。; 适合人群:具备一定信号处理、机器学习及MATLAB编程基础的研究生、科研人员及从事工业设备故障诊断的工程技术人员。; 使用场景及目标:①应用于旋转机械设备的智能运维与故障预警系统;②为轴承等关键部件的早期故障识别提供高精度诊断方案;③推动智能优化算法与深度学习在工业信号处理领域的融合研究。; 阅读建议:建议读者结合MATLAB代码实现,深入理解OCSSA优化机制、VMD参数选择策略以及CNN-BiLSTM网络结构的设计逻辑,通过复现实验掌握完整诊断流程,并可进一步尝试迁移至其他设备的故障诊断任务中进行验证与优化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值