《零基础看得懂的C语言入门教程 》——(三)轻轻松松理解第一个C语言程序

一、学习目标

  1. 了解C语言代码的一般结构
  2. 了解函数的概念
  3. 了解printf函数的使用方法
  4. 了解头文件的概念
  5. 了解system函数的使用方法

目录

C语言真的很难吗?那是你没看这张图,化整为零轻松学习C语言。
第一篇:(一)脱离学习误区
第二篇:(二)C语言没那么难简单开发带你了解流程
第四篇:(四)语言的基本数据类型及变量
第五篇:(五)C语言的变量、常量及运算
第六篇:(六)轻轻松松了解C语言的逻辑运算
第七篇:(七)C语言的循环分分钟上手
第八篇:(八)了解基本数组还不是那么简单
第九篇:(九)C语言二维数组与循环嵌套
第十篇:(十)C语言的指针原来是这样
第十一篇:(十一)C语言自定义函数真的很简单
第十二篇:(十二)原来结构体是这么回事
第十三篇:(十三)socket服务端编写

C语言新手的100个报错解法

推荐

我正在参与1024活动,欢迎大家点赞、收藏、评论我的干货文章《一篇文带你从0到1了解建站及完成CMS系统编写》
欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
在这里插入图片描述

二、简单了解C语言程序的基本结构

在上一节学习中,复制了一段HelloWorld代码并且运行了该程序。接下来通过上一节的代码来学习一般情况下C语言代码的结构组成。

2.1 了解C语言代码编写区域
如下图,紫色框所示意的区域为工作区,我们编写代码在此区域进行。但对于初学者来说,此方式编写太过自由,最适合初学者的方式为指定一局部区域,在该区域编写基础代码。
在这里插入图片描述

在上一节中,我们修改了 printf("")双引号内的内容,从而实现了程序在运行时显示内容的自定义。我们再查看这个printf("")所在的区域为int main(){} 代码中花括号({ })内。该花括号内我们称为main函数内的代码内容。

在此我们出现了一个新的名词“函数”,“函数”的概念接下来将会讲解,现在我们抛开函数得知,printf 这个代码,是编写在一对花括号中的。那么我们在此规定,接下来写程序将会在这一对花括号中编写。

在以上代码中,花括号内的代码,每一句结束后都是用了一个分号(;)作为结束标志,分号在代码中作用跟中文书写文章一样,表示这一句结束,在编写代码时一般情况下使用分号表示结束。表示结束还有很多不同的情况,我们将在之后的课程详细说明。

注意:在编写代码时,所有的关键的符号标点都需要使用英文状态下进行输入。

三、了解函数的使用方法

在上一个小点中出现了“函数”这一陌生名词。在编程中,一般函数并不所指数学中的函数,所指代的为一个功能,一个可以帮我们完成某个结果的方法。

3.1 了解函数的概念
在编程中,函数可理解为一种直接使用就可以完成某个任务的“工具”。函数可以自己去实现,在之后的课程将会说明。

函数我们可以使用一个例子很好的说明:在洗衣机未出现前,我们洗衣服一般可分为打水、放皂角之类的洗涤剂、敲打或搓洗、漂水洗净、扭干;通过以上的步骤才可以完成衣服的洗净。当洗衣机出现后,洗衣机自动的完成了打水、放皂角之类的洗涤剂、敲打或搓洗、漂水洗净、扭干这些过程;当我们洗衣服时就不需要如此繁琐的过程,只需要把衣服放进洗衣机中就可以完成该任务。

在C语言编程中函数也如此,函数表示一个方法或功能,当我们需要使用该功能时,可以通过书写改函数的名称,传递一些所需的内容,即可完成该任务。

3.2 了解printf函数的使用方法
在我们上一节中,修改了printf("")双引号内的内容,程序运行时显示了该内容。从运行结果得知,printf极有可能是用于程序在运行时显示内容的关键代码。如果你有这个想法,恭喜你,你具备了一些编写程序的思维。printf("")的作用是在程序运行时,将圆括号中双引号内的内容显示出来,在编写程序时,非特定字符情况下,你在双引号内填入什么值则会输出什么值。

printf是一个函数,功能是在程序运行时显示一些值。我们填入的值称为参数。一个函数使用的一般方式为函数名后接一个圆括号,如需要传入字符串值作为参数,那么在传递字符串的时候使用双引号引起来作为传入即可。(之后的课程会学习多重类型作为参数的不同表现形式)

在C语言中,直接可以使用的函数称为系统函数,如printf,这些系统函数等同于一些工具,分类存放于一些“工具箱”中。

3.3 了解头文件的概念
在3.2节末,我们得知系统函数分类存放于一些“工具箱”中,这些工具箱则是头文件。如下图,头文件则是代码中最头部位置的那两行代码。
在这里插入图片描述

如上图紫色框示意位置则是头文件的引入代码。如何引入?接下来告诉你。
引入代码如下:

#include<stdio.h>
#include<stdlib.h>

以上代码中,stdio与stdlib为头文件名称,其中stdio.h的.h为该文件的后缀,h表示这个文件为头文件。我们可以理解这个.h为当前文件的标志,表示类型。
#include<> 表示引入哪个头文件,该代码的作用就好比一只手,你告诉它拿什么工具箱,它就去帮你去指定地点将工具箱拿来。那么这个指定地点在哪呢?系统默认这个地点为devc软件安装位置下的include目录。
在这里插入图片描述
这就是环境的作用,如果你编写C语言程序,没有所支持的库那么使用printf函数将没有任何作用,除非你自己手动实现整个过程,这个过程对于新手来说是非常繁琐且模糊的。
当然,我们在引入头文件时需要注意,随意引入是没用的,假设我想引入一个名为qqq的头文件,#include去当前目录寻找该文件,发现找不到,这个时候将会出现错误提示。
在这里插入图片描述
并且会提示报错,告知你在该目录下并没有找到该文件。
在这里插入图片描述

那么问题来了,现在我们回顾为什么要引入头文件?
在之前有说,函数是存在于头文件中,那么就存在一个逻辑“使用一个函数则需要引入该函数”。我们使用的函数printf存在于stdio头文件中,所以在头部我们把工具使用include将其引入,引入后printf才可以使用。不信?那我们把头文件第一个引入删除,随后点击编译程序看看是否会报错。编译按钮如下:
在这里插入图片描述

删除后代码如下:

#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

编译后结果:
在这里插入图片描述

在下方提示窗口中提示了一个警告Warning,表示当前系统函数printf直接使用不当。(因为直接翻译过来会有一些专业术语,所以我换了一种表达)由于现在C语言的标准在随着时间改变,所以导致了出现警告,在老一点的标准中,会直接出现错误,就不是现在的警告了。为了良好的习惯我们把引入#include<stdio.h>加上:

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

再次编译则没出现警告。
在这里插入图片描述

3.4 了解system函数的使用方法
上一节中了解头部头文件的引入作用和方法,接下来再了解另外一函数system。system函数作用为执行系统命令。这个系统指的是DOS系统,简单的理解就是程序运行时出现的小黑框。

在此system为何要调用这个DOS小黑框的命令呢?这个命令又是什么?有什么作用?
我们首先查看在代码中的system为system ("pause");,这一句代码的作用是:当程序运行到此处时停止,等待按下一个键继续运行。那为什么要这样做呢?因为不加这一段代码我们所边写的程序就会一闪而过。

我们可以做个试验,删除system这一行代码,最终代码如下:

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");
}

随后点击编译运行程序按钮。
在这里插入图片描述
随后出现黑框框,并且没有出现一闪而过的现象。
在这里插入图片描述
哎呀,是不是我翻车了呢?其实并没有。
在这里会停止使因为我们通过了devc这个软件进行程序运行,这时会自动的添加停止。那我不从devc软件运行该程序会怎样?我们在上一节学过,当编译运行后,将会生成一个可执行程序,双击可以直接运行。
在这里插入图片描述
我们去之前设置的文件保存处,找到该文件双击运行。这个时候就会出现一闪而过的现象。所以同学们,还是得添加停止代码。

#include<stdio.h>
#include<stdlib.h>
void main(){printf("你好 世界!");system ("pause");
}

接下来解释一下 system ("");函数的用法。system函数并不是只有暂停功能,它可以使用DOS系统的命令,但是需要传递该命令。由于学习DOS系统命令会增加没必要的学习时间,我们是以C语言学习为主,在此只需要知道传入一个pause就会执行暂停即可。暂停命令是一串字符,称为字符串。一个函数不需要传入参数的形式为函数名加圆括号system(),但在此需要传入一个命令pause实现暂停,则编写为system ("pause"),代码需要使用分号表示结束,则最终写成system ("pause");。注意标点符号一定是英文输入法下输入。

四、main

在helloWord程序中还有void main 未解释。因为内容涉及过多其它内容,在此并不做详细解释,只需要了解main是C语言程序的入口。

我们编写一个程序,必须要给予计算机一个最起始的入口给计算机,告诉它我们的程序从哪开始,这就是main。就好比学校一样,有一个大门,你拿着录取通知书看见一个大门,知道这个是入学校的入口。计算机也一样,这个main是我们在C语言中规定的一个入口。

IT原创动漫、学习资料、原创教程请关注公众号。
在这里插入图片描述

五、总结

通过以上描述与讲解,我们了解了以下几点内容:

  1. 初学者开始写代码先从main之后的花括号内编写代码
  2. 了解了函数的概念为一个功能的实现
  3. 了解了printf函数的使用方法,在函数内传入值即可在程序运行时显示
  4. 知道了头文件的位置及函数存放于头文件内
  5. 了解了stystem函数是调用DOS系统命令的函数
  6. 了解了main的作用是表示代码入口

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=luezrrk9istg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287830.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hdu_1728_逃离迷宫(bfs)

题目连接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1728 题意&#xff1a;走迷宫&#xff0c;找最小的拐角 题解&#xff1a;对BFS有了新的理解&#xff0c;DFS剪枝应该也能过&#xff0c;用BFS就要以拐角作为增量来搜&#xff0c;即以当前点为坐标&#xff0c;4…

把文件放在SD卡

2019独角兽企业重金招聘Python工程师标准>>> 在程序中访问SDCard&#xff0c;你需要申请访问SDCard的权限。 在AndroidManifest.xml中加入访问SDCard的权限如下: <!-- 在SDCard中创建与删除文件权限--> <uses-permissionandroid:name"android.permiss…

python分层聚类集群合并_24、python分层聚类案例(scipy方法)

目录1、分层聚类算法2、方法3、分析步骤4、案例1、分层聚类算法层次聚类算法又称为树聚类算法&#xff0c;它根据数据之间的距离&#xff0c;透过一种层次架构方式&#xff0c;反复将数据进行聚合&#xff0c;创建一个层次以分解给定的数据集。2、方法01 聚类方法linkagescipy.…

【经典回放】多种语言系列数据结构算法:数组

数组如同前面学过的顺序表,一次性申请一片地址连续的存储空间,我们还知道,计算机中数组是以一维的形式存储的,因为计算机的内存的一维的。在知道了多维数据的计算机存储方式后,我们还要知道构造一个多维数据的方法,并构造ADT,具体做法如下所示: 内容和步骤: 1、C语言中…

stl中Priority Queues(优先队列)的基本用法

博客搬家啦 blog.ma6174.comstl中Priority Queues(优先队列)的基本用法 C优先队列类似队列&#xff0c; 但是在这个数据结构中的元素按照一定的断言排列有序。 C Priority Queues(优先队列) empty 语法: bool empty(); empty()函数返回真(true)如果优先队列为空&#xff0c;否则…

如何用 windbg 导出 C# 中的 string 内容?

咨询区 driis我在用 windbg 调试一个生产上的 程序卡死 故障 &#xff0c;在线程栈上有一个 string 类型的参数相当大&#xff0c;我用 !dumpobj 命令不能正常显示内容&#xff0c;参考如下&#xff1a;0:036> !do 00000001b30d8668 Name: System.String MethodTable: 00000…

《零基础看得懂的C语言入门教程 》——(四)C语言的基本数据类型及变量

一、学习目标 了解C语言的基本数据类型了解变量的基本概念了解变量的使用方法了解了变量的命名方法了解格式占位符了解变量的输出 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离…

android一句话搞定图片加载

http://square.github.io/picasso/ Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView); gradle中添加 compile com.squareup.picasso:picasso:2.5.2 转载于:https://www.cnblogs.com/rwxwsblog/p/5467874.html

转HTML+CSS总结/深入理解CSS盒子模型

原文地址&#xff1a;http://www.chinaz.com/design/2010/1229/151993.shtml 前言&#xff1a;前阵子在做一个项目时&#xff0c;在页面布局方面遇到了一点小问题&#xff0c;于是上stackoverflow上求助。ifaou在帮助我解决我问题的同时&#xff0c;还推荐我阅读一篇有关CSS盒子…

主成分分析步骤_多元分析(1)--主成分分析

主成分分析主成分分析&#xff08;PCA&#xff09;是数据降维的一种常见方法&#xff0c;其它常见的方法还有因子分析&#xff08;FA&#xff09;,独立成分分析&#xff0c;在进行大数据处理时&#xff0c;因为数据有很多特征&#xff0c;维数过高&#xff0c;不容易进行处理且…

ArcGIS实验教程——实验十九:网络分析(最短路径实现)

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 网络分析模块用于实现基于网络数据集的网络分析功能,包括路径分析、服务区分析、最近设施点分析、OD成本矩阵分析、多路径配送分析、位置分配分析和高级网络的管理与创建等。 网络…

设计模式之策略模式和状态模式

1 策略模式 我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法&#xff0c; 我们可以简单理解为更加不同的策略对象&#xff0c;执行不同策略方法。 2 类图 3 代码实现 1&#xff09;接口&#xff1a;Strat…

期待已久的Java 9 今日发布

人们期待已久的Java SE 9.0将在2017年9月21日发布&#xff0c;它会带来一些重要的变化。\\JDK 9的核心变化就是引入了一种新的Java编程组件&#xff0c;也就是模块&#xff0c;按照Oracle的说法&#xff0c;它是一个可命名的、自描述的代码和数据集合。模块技术的核心目标是减少…

AspNetCore7.0源码解读之UseMiddleware

前言本文编写时源码参考github仓库主分支。aspnetcore提供了Use方法供开发者自定义中间件&#xff0c;该方法接收一个委托对象&#xff0c;该委托接收一个RequestDelegate对象&#xff0c;并返回一个RequestDelegate对象&#xff0c;方法定义如下&#xff1a;IApplicationBuild…

边工作边刷题:70天一遍leetcode: day 11-3

Single Number I/II II的python解是网上抄的&#xff0c;其实可以AC&#xff0c;但是python不会像c/java那样自动overflow&#xff0c;而是转化成long。所以如果有负数的情况会得到一个巨大的正数解&#xff0c;比如 Input:[-2,-2,1,1,-3,1,-3,-3,-4,-2] Output:4294967292 Exp…

《零基础看得懂的C语言入门教程 》——(五)C语言的变量、常量及运算

一、学习目标 了解C语言变量的其它创建方式了解C语言常量了解C语言的运算符 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1a;&#xff08;二&#xff…

实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI

系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使用Axure设计App,使用WebStorm开发(3) – 构建页面架构 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI 实战使用Axu…

ArcGIS实验教程——实验二十:ArcGIS数字高程模型DEM建立

ArcGIS实验视频教程合集:《ArcGIS实验教程从入门到精通》(附配套实验数据) 一、实验描述 本实验讲述DEM的创建方法和过程。DEM的采集方法有四种:地面测量、摄影测量、空间站、地形图数字化。 二、实验内容 1、插值法DEM建立 2、创建TIN 3、TIN转栅格 4、生成等高线 …

思科asa5515端口映射_Cisco ASA端口映射

SQL基础--同义词同义词的概念: 同义词是Oracle对象的别名,使用同义词访问相同的对象 可以为表.视图.存储过程.函数或另一同义词等对象创建同义词 方便访问其它用户的对象,隐藏了对象的身份 缩短对象名字的长度 同义 ...访问本地json文件因跨域导致的问题我使用jquery的getJSON的…

英文词频统计预备,组合数据类型练习

实例: 下载一首英文的歌词或文章&#xff0c;将所有,.&#xff1f;&#xff01;等替换为空格&#xff0c;将所有大写转换为小写&#xff0c;统计某几个单词出现的次数&#xff0c;分隔出一个一个的单词。2.列表实例&#xff1a;由字符串创建一个作业评分列表&#xff0c;做增删…