版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在讲第一个程序之前,我要说明下我是以怎么样一个方式来教大家C语言编程。首先C12天能熟练的,C语言,代码CC语言代码并且能独立编写一个完整C的C语言顺序和上面完全相反,笔者将通过一段段代码来讲解C语言,而不是学完C种学习方式几乎没有好处,现在的都是前篇一律,抄来去,馆,乎看到CC我会把各个部分的知识点做成一个 ,目的是为了让读者能看到学习的“路”,更的看一终”多C语言有好几百页,内容多到大部分读者都看不到终点,就像跑一个未知终点的,开始尽力充沛,跑到后半段开始筋疲力尽,一旦看不到终点,就会容易放弃(本身没有错,但是这样的更加适合当编程遇到问题做查阅用)。所以笔者希望能让读者有一个目的地可以努力,我希望每个读者都能到达“终点”。但是,当然我所说的“终点”仅指,本次C语言的终点。而对于读者来说,的C语言编程才刚刚开始。学习目标:1、程序2、变量的定完成完成了学习目标,代码里面其他不懂的地方可以先不用着急去理解,读者也不需要好的去查,1顿饭吃1碗饭就够了,如果吃多了反而消耗不了,学习目的以外的知识点会代码例程一:#includevoid{#includevoid{char o%s\r\n",name);}2:数3:头文4:循5:函6:程序读者千万不要被这些新的概念吓到,也不用担心消化不了,这些概念,几乎在每个C语C语言中关键的第一步,(况且这比刚开始学习汉字的时候简单多了)。的 2:如何实现代码接下来我们所写的代码都是在C文件里面实现的。第一步:计算机怎么知道,从哪里开始运行我写的代在开始写这段代码的时候,我的第一个思路就是,我先做一个“”,让计算机知道该在哪所以我写了一个程序的总,main()函数,所有的C语言代码执行都是从main()函数 voidvoid{}第二步:我如何从键盘我输入的内容,我从键盘获取的名字应该如何表示?scanf();获取键盘的输入。(先暂时不要管是如何实现)。既然有输入,那么就需要输入得数据接下来我要用这个名字,我用这个name表示就可以了。C语言中最基础也非常重要的概念变量。首先我们应该先问下自己,为什么需要变量和常量假设有一个人她叫花千骨,她18岁,师傅叫画,他27岁。所以你要将花千骨和白子画这个2人的名字和通过C语言告诉计算机,但是C语言是用英文字母表示。所以下面举例说明C语言变量和常变变charage=17;name和age常constchar 1、赋2、分号的作3、数据类4、数C即给一个变量赋一个值。比如上面的name变量要表示画,age要表示27岁则name="画";age=27;就完成了这2个变量的赋值。分号的作用就相当于句号,中文我们说完一句话,都要画一个句号,C语言写完一条语句不知道你这句话讲完了,如果你还讲了另外一句话,它当然会报错。数据类型:数据类型是C语言编程中非常基础也是非常重要的一部分,非常简单,也是非常精妙的我把常用的数据类型先列举出 integer的的简称,整形(其实C语言中很多的关键字都是英文的简写,之所)short短整 作用:存大数字char:字符型 作用:存字符或者比较小的数据,如ABCDfloat浮点型 作用:存小数,比如1.13.1415double:可以存更大的小数假如我现在有一个数字100,我要将100进计算机(通过C语言),我可以用上述的所个int类型可以4个字节数据)。上面的例子只说了整数的情况,小数的我们用float。衍生:上面的数据类型都是默认都是有符号的,比如能存-1、-100等,C语言中有一些数一定是正数,比如,体重。这个时候最好能用无符号的类型保存,这样做的好处是同样占用2计算机中是如何区别无符号和有符号数的呢?数学里面我们用+1表示正数-1表示负数,但是计算机只有01,所以有符号的类型的最被用来用作符号位,0表示正数1表示负数。而无符号则没有,这就是为什么同样占2个字节但是无符号的类型要存的大一总结大小3:存的数的类型(整数?小数?)。很多人开始学编程的都不重视这些,认为只要定义一个很多人开始学编程的都不重视这些,认为只要定义一个long类型的就不怕数据会存不下,这个想法其实是不对的,初学者刚开始学编程的时候就应该养成良好的编程习惯,因为习惯一旦养成,就很难改变,实现同样一个功能的代码,不同的人写的代码量和运行时候占用的内存,都是不一样的,往往有好的编程习惯的人,写出代码小,占用的内存小。所以好的编程需要要从点滴做变量的和定义能使用,而就像这个变量的”出身证明“,在某些地方要用这个变量了,出示下这个出身证明就行了(这个变量),告诉计算机这个变量”出生“过就行了(计算机很笨,不告诉它,它找不到这个变量)。一个变量只能”出生一次“(定义一次),但是出身证明确可以多处使用(多处)。如int运算a=a+10;初学者可能很难一下子理解这些,不过现在理解不了没有关系,在没有学深入的时候,初学者可能很难一下子理解这些,不过现在理解不了没有关系,在没有学深入的时候,过分追求细化的理解,很容易陷入纠结,而且这完全没有必要,在遇到自己目前还无法理解的知识点的时候,可以先标注出来,过一段时间回过头来看,豁然开朗。(相信实际用到就会印象深刻了)。变变变量名不能使用编程语言的保留字。比如在javascript虽然只要满足变量命名规则的变量都能被编译器识别,但是真正写代码的时候,写变量名不可以随便,变量名的好坏,影响自己编程的效率,也影响程序的可读性;虽然只要满足变量命名规则的变量都能被编译器识别,但是真正写代码的时候,写变量名不可以随便,变量名的好坏,影响自己编程的效率,也影响程序的可读性;比如我现在要定义一个变量表定义一:inta; 定义二:intnianling; 定义二:int //用英文表上面的3使用定义一,可能编程的当天用变量a的时候还能记住这个变量是干嘛的,但是过个十天半个月,再回过头来看这个代码,就不知所云了,更别说让别人看你的代码。使用定义二,有的读者可能使用定义三,用英文命名既能很好释义这个变量是用来做什么的,而且也让阅读的人能很快的理解。什么是定义?什么是?它们之间的区别是什么?(供读者参考所谓定义就是(编译器)创建一个对象,为这个对象分配一块内存,并给它取上一个名字,这个名字就是就是我们经常所说的变量名或对象名。有2重含义定义和的最重要区别就是 如果读者还是不理解,在今后的代码中,我会标注2者的区别,在代码中体现会更加直观变量的初始化:变量初始化就是在定义一个变量后给它赋值,初学的读者往往会忘记这个重要的步骤。认为变举一个简单的例子ainta;这个时候a的值可能是10,也可能是1000,或者不知道是什么数字的,所以,要想以后用这个变量的时候不出问题,一般我们都会给变量赋值0,当然如果有些特殊变量,可以赋值特殊的初始值。编程过程中由变量使用不当,会引起一些问题,主要有一下2种(可能很多读者即使留了个心眼,也是会出错,这个是很正常的现象,希望读者能在以后的编程过程中,慢慢体验这种问题引起的错误,慢慢的减少犯错的次数)charage;char类型能的最大的值是255,如果给他赋值300,就出现了溢出的情况。数据类型强制转换:就就是”程序里面一些看似简单而正确的语言想当然(认为是对的),往往问题出在“bit:位这样8个0就是1个字节。(当然也可以 二进 由01组 十六进制由0-F组成举个例子:数字二进制十进制表示 十六进制表示 (八进制 不怎么常用。不做讲解。(有的时候可以去了解下)不同进制数,就是表示方式不一样,在计算机里面数据最终是以二进制数,但是二进制数进制呢?十六进制其实是个很巧妙的发明,C语言编程经常会用到移位,这个时候用十六进制表示会显得更加简单。读者刚接触的时候,可能会不太适应一个数字不同的表示方法,十六进制的并不是将十进制转换为十六进制的过程(很多都过分侧重如何将一个数字转换为十六进制,而忽略了这么做的最根本的目的),而是当一个数用十六进制表示之后,编程方便了很多。数组char型的数组定义如下:char比如上面的例子,1个char类型是2个字节,那么name的大小就是15*2=30字节。之所以使用数组,是因为当有很多数据需要保存的时候,我们不希望定义很多变量,这样代码看起来非常不美观,而且没有必要。charname[6]={'h','e','l','l','o','\0'}; 使用定义一个charegg;那么这时候egg的值就是1:1:使用数组要防止越界,也就是说大小为100的数组,最多使用到下标为99,记住组的下标是从0开始能避免以后编程可能遇到很多问题2:数组名其实是数组的首地址,这个概念在讲到指针的时候会解释(指针是C语言中一个伟大的发明,其实它不神秘,而是因为它太好用了),这个知识点很有用,也是数组的一个精髓。字符个名为namechar类型数据赋值Acharname //正name=A; //错误,这样赋值的意思是将一个名为A的变量的值赋值给name,这和字符串 即一串连续的字符,用双引号括起来串往往用char类型的数组表示,数组的大小视字符串的大小而定。charname[6];这里需要6个char类型才能保存“o”,很多人就奇怪了,'h'、'e'、'l'、'l'、'o'分5char类型吗?其实每个字符串的末尾都有一个字符串结束标志'\0'它占了1个char的大小,加入这个结束标识符,能告诉计算机,到这个地方为止是一个字符串,接下来我需要函数来完成键盘上面的名字。仔细的读者已经发现, scanf()中有name这个变量,这也是为什么后面能通过name显示我们自己输入的名字。好奇的读者可以跳跃过去看看scanf();这个函数的用法(不需要去看函数章节,大脑一个时间的接受信息的能力是有限的,不要太多,够用就好)。还有一句:#include"stdio.h" 为什么要写这个语句呢?答:虽然调用了scanf();这个函数(因为我知道它能实现我们想要的功能),但是,计算机比较笨,它不会玩捉迷藏,它不知道去哪里找scanf();所以写这句话的目的是为了告诉计算机,scanf();躲在“stdio.h”里面,去那里找它就可以了。这里实际上就是头文件的概念,我会在头文件章节做详细的说明第三步:如何显示出来,通过调用一个函数printf(),将下来的char类型的数据输voidmain(void){charvoidmain(void){char o%s\r\n",name);}我加了3句:第一句的目的是为了在字。2printf();函后这么啰嗦的教学方式了。笔者是从一个初学者的思维,然后加上自己的理解来教学。大家如果有看下去,我非常开心。笔者希望通过一步一步实现不同功能的代码,慢慢的了解C语言编程,现在还是打基础的阶段,等房子地基建好,建房子只需要一个设计的图纸(程序的功能需求)、必要的工具(开发环境)和一定的建造时间,相信很快就能建造一座属于自己的房子(实现一定功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 10. 搭建数据库服务
- 注册会计师税法中个人所得税法税收优惠的适用条件
- 自动控制系统计算机仿真 课件 张晓江 第5-8章 Simulink在系统仿真中的应用-电力系统工具箱及其应用实例、符号运算
- 某珠宝加工厂工艺流程规范
- 2026甘肃甘南州舟曲县城关镇社区卫生服务中心招聘3人备考题库及答案详解(考点梳理)
- 2026西藏昌都市左贡县青年就业见习招聘30人备考题库及参考答案详解(培优)
- 2026福州鼓楼攀登信息科技有限公司招聘1人备考题库含答案详解(培优b卷)
- 2026浙江大学宁波国际科创中心未来计算技术创新中心工程师招聘备考题库附答案详解(轻巧夺冠)
- 2026河北石家庄城市建设发展集团招聘10人备考题库及参考答案详解ab卷
- 2026广东广州大学第二次招聘事业编制人员6人备考题库含答案详解
- 临床床头抬高30°-小角度大作用
- 2026湖北宜昌夷陵区小溪塔街道办事处招聘民政助理1人笔试备考试题及答案解析
- 2026新疆兵团第七师胡杨河市公安机关社会招聘辅警358人考试参考试题及答案解析
- 2026陕西榆林市旅游投资集团有限公司招聘7人考试备考试题及答案解析
- 2024版前列腺癌药物去势治疗随访管理中国专家共识课件
- 2026年基于责任区的幼儿园联片教研活动设计方案
- 2026新疆喀什正信建设工程检测有限公司招聘12人考试参考试题及答案解析
- 会计内部监督制度
- 2026春冀人版(2024)二年级下册小学科学教案(附目录)
- 09鉴赏诗歌语言之炼字炼句
- 幼儿园后勤业务培训制度
评论
0/150
提交评论