c程序设计(谭浩强)阅读与实操 1章 (新手向)

《C程序设计》第一章
因为又臭又长,对手机版读者并不友好,建议直接复制所有文本放入CSDN的文章编辑器里面进行读解(这应该是系统化的教学,如果只是想随便看看的话,我并不推荐,因为文章又臭又长)
声明:该文章根据《C程序设计》(谭浩强)老师的书本来进行写入,主要目的是为了对C语言进行入门与学习
且为新手向,并且是作为自娱自乐的巩固自己的知识与查漏补缺而创建的,请避免不必要的争议。
本文中所有观点都非常主观,请酌情理解
但依然非常欢迎补充
也非常欢迎提问(如果我能解决的话)

需要补充以及需要补全的知识要点以【疑】来标注,日后针对性的进行操作(既是为了解决自己的疑虑,又是在当自己做到“立身”之后对“惯性依赖”进行的防范[词语来源:bv1Q64y1R75o](简单释义:因为现有并无法得出的能力,到之后也并不去进行改进做到这种效果,而导致一直无法出现这种效果【我对这玩意进行写的时候主要是为了进行“系统化,全面化”的进行发展,所以会选用“目录”的形式来进行对各个实操进行目录的划分,并且当存在一定能力时将其以“作用与特点”来进行划分】)){目前讲这个还是当个笑话,一笔带过就好}
第一章:
程序是什么,编程语言是什么?有什么用?
首先。根据最后一个问题(有什么用?)以我客观来说就是写进去的东西会表现出你想要的样子。也就是说你想要干什么就能够在里面写什么。(而代码则是你要干的事情的基础)
程序是代码的总和,编译器则是运行代码与程序的工具,将你想要表现的东西具象化。

实际操作
了解了编程是什么,能干什么之后,那就进行实际操作。
材料:VS 2017 (资源整合:https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes)【我用的是2013的版本,可能会有一些区别,2013版 https://www.iplaysoft.com/vs2013.html】
(其他编译器也可以,如果有问题建议直接百度【我也是小白】)

有了材料之后,打开,随便搞点简单的程序
新建
vc ++
目前接触的还只是空项目,毕竟现在都是小白啦。需要注意的就是储存位置,以免找不到,建议存放在桌面或者一些明确路径的文件夹,默认文件夹在哪我也不清楚
进入界面。首先注意右边的那玩意
新建源文件  (其他如果以后用到会写在目录里)
新建之后需要注意的就是文件后缀是.c 而并不.cpp 其实简单来说,cpp就是编译c++文件,支持c++语法,而c就是编译c语言文件,支持c语言。2者的区别就在于语法和编译时的确别吧。(参考资料:https://blog.csdn.net/weixin_44363885/article/details/96371002)【参考资料我不明白是不是要去深究怎么怎么样,反正我找到答案了就跑(bushi】
【疑】

还需要特别注意的是(vs 用户需要注意的,右击属性)找到SDL检查选择为否,不然会报错
其他编译器或许并没有那么麻烦(
这就是简单的程序了
这里解释一下:#include 是预处理指令:在编译器读你代码之前,获得你代码数据的一个玩意(在你所用的文件夹中获得所有与你代码相关的资料)【资料中说能放在程序中任意位置】【疑】
(资料来源:https://www.cnblogs.com/clover-toeic/p/3851102.html)

这里的int main()是对主函数的定义 (分开来看,int在字典中表示的是【整型】) main表示的是主函数,主函数相当于你所使用的函数的最终函数,(到以后会用到其他的函数)【疑】
int 是声明,声明为整型(与字符串与字符区分(字符与字符串是什么下面有说))
int在自己的代码行也能够使用,这里则主要是为了建设与铺垫C语言的预设(预先设置(往往没有太大的自由性,但在自己的代码中才是自由性最大的位置))【疑】
我主观的来讲:函数大致就是一文件夹。你取用的代码就是里面的文件。但即使你用了其他函数也不能够舍弃主函数(大概是因为主函数是最大的那个文件夹吧)

然后就是你的代码行,需要用{代码;代码;代码;}这种格式来进行对代码的编写。(;)在c中不可少
这里使用到了函数printf(输出),这个函数中需要写上"文字abcdefg"来进行输出。(这里的输出也就是【具象化】,能够让我们看到的部分)
\n 表示【具象化】的换行
例如:printf(“abcde \n acdc”);
具象化的输出:abcde
acdc
(自己运行一下就明白了)
其中在“字符与字符串”中的各种字(可以是中文)被称为字符与字符串,字符与字符串并不能够作为代码来进行使用,而是作为相关于ascll码进行编制的数值来进行使用(每个字符都存在这个字符的ascll码),也就是说,你所写入在这里的字符实质上只是一段数字【疑】(其方向与大致用法)

return 0;
自己的代码行结束了(返回值为0【返回值之后或许会讲】),最后补充}
随口一提:在python中;可以没有(以前学过一点点基础,但实质内容却是没有接触,看上去是差得多了,以至我现在都不知道开源具体怎么用,也不明白那些元祖列表之类的文件夹能塞点啥进去)

接下来就是运行与调试了,首先是运行
本地Windows=调试器可以直接进行运行,但并不会显示字符与字符串
因为直接运行的缘故,所以会直接运行而只让其闪烁一下就消失的效果(窗口)
所以使用上了暂停指令,别忘了前面的符号_
注意:括号以及;,必须要是英文状态下进行输入的,不然会被认为是“字符”而无法辨认而报错
这里的_sleep是函数,括号中的是【参数】(以后看说明文档的时候,出现的参数指的多半是这种在函数中的东西)
这里的参数设定的是停止多少毫秒,这里写着的1000就表示停止1秒?(这里指实际操作上的),其实可以再多一点的,设置为10000也可以试试
(线性:指函数有规律的进行增加或者减小,这个概念目前没有明确明了,也是偶尔听到的道听途说,并不可靠)
【函数多半也可以是指初中上学的二次函数之类的图像概念】
注意:如果没有保存,代码就要重新写了,ctrl+s是保存的快捷键

这里整合一下前期所用到的(预设代码)
.#include<stdio.h>
int main()
{ //自行代码行
return 0
} //代码行结束,并且返回值为0
我在代码中使用了//,是为了标注,在//后面的字符都会被设置为标注,也就不是代码,也就不会被编译器读取,也不会运行(//这种设置只将此行在//后面的字符作为标注)
如果有大批量的,在c中,则可以设置为/*各种各样的字符
各种各样的字符 **/(注意是在英文状态下的)

随口一提(注意,我的每个随口一提都可能会是其他语言的各种代码,不要有争议,写这个文本的主要目的是为了看到自己的成长与对编程语言进行系统化的寻找道路与学习的过程,可以看做自娱自乐,所以并没有争议的必要存在):在python中,其注释符为#后面就能写上各种各样的字符(主要还是python学的多,而且之前也用到过使用其作为能够被使用的语言的游戏引擎做过一些小游戏(那个时候没有美工,只有文本和音乐,音乐还都是偷来的))

1.4.1 的例1.2中涉及了两个变量的相加,并且将其具象化出来
代码{
int a,b,sum ;/* 这里的每个变量都需要被","隔开后定义。int表示对变量进行整型定义*/
a=123;
b=1;
sum=a+b;//这是很容易的加法运算,也就是将变量a中的值与变量b中的值相加
注意:在c中,数值相加首先需要定义变量,int就是一个整型变量,表示的范围是-2,147,483,648 到2,147,483,647。(应该不能用来定义小数,用过使用单精度浮点float来进行对小数的定义(后面会讲))【疑】
(参考:int值的范围 https://blog.csdn.net/h1243143568/article/details/97163475
float的简述 https://zhidao.baidu.com/question/400174174.html)

既然前面有了输出printf,那么也需要有【输入】变为的具象化才能让程序被人理解并且做出反馈
【输入】:用户执行程序时,用户输入的字符,而程序可以使用用户所输入的字符以此作为数据来进行后面代码的安排(就像是galgame游戏的分支一样,当主角做出行为时,进入的每个女主的线都是不同的)

(可跳过)这里我顺便吹一些renpy,学习了python后再对renpy进行学习后,python能够被renpy游戏引擎所使用,目前我明知的python的元祖啥的也就有了一点用处

那么,在c语言中,scanf则是作为输入的使用,(输入输出两个大的概念,在c语言中有各个代码表示,但目前的实质上,并不需要对其进行深究,因为大多数表示这两个概念的代码的作用也就仅是输入与输出,多数的区别以后再细说)【疑】
scanf("参数a,参数b ")这是scanf,一个函数,这个作用也就是获取用户键盘上的输入(用户需要按下回车来进行【两个值的输入】,并且需要用逗号隔开两个值)

scanf("%d,%d",&a,&b);这段代码中,我们之前介绍的“参数a,b”则是%d与%d(他们被称为“格式符”,且%d只可表示十进制整数),他们的作用,则是将用户上的输入读取。(在不同的代码下也会有不同的作用,其主要的作用则是:表示十进制整数,并且以读取表示)
这里的&表示的是【地址符】,也就是将其数值传输到a,b两个变量中去(前提是变量被定义)
所以在前面则需要声明上int a,b 这两个整型变量的声明(起码知道,ab这俩是个整型数据)
注意:编译器一般是按照从上往下来对代码进行编译的,所以出现未声明的变量会直接报错,在后面的(调试)中会说到 【疑】
(关于scanf https://baike.baidu.com/item/scanf/10773316?fr=aladdin
关于格式符(各个格式符是能够接收各个不同的数据的,例如%c则可接收字符,所以当用户输入中文的时候也能够被接受并且作为字符形式执行) https://zhidao.baidu.com/question/100829636.html)

例1.3
这里使用到了max函数
x=max(a,b);也就是将a与b中最大的值赋值给x,当然,x与=可以没有,不过这样并没有起到【具象化】与【定义】的意义了

这里也使用到了在printf中的%d,其表示十进制整数,并且以读取表示
printf("%d",c);这里的printf自然表示输出,而%d与c则分别表示【输出表示】与【输出内容】,%d表示输出表示,其作用仅仅是读取十进制数值来进行表示,而printf则作为函数输出给用户看,而c这个变量则是将自己的数值给%d,而在"“中的%d也就是按照c的数值进行输出。(如果c是字符型的话,这里的%d可以变为%c作为字符来进行输出,但在”"中能够直接输出字符,所以看起来也是多此一举,不过按照自己的目标来制定代码还是最好的)【疑】

下一个是【创建函数】对函数的定义。
int 设定整形函数 max (设定参数 int 为整型 x, int y 设定参数2也为整型)
if的使用(这里所使用到了if)也就是【如果】
if的标准格式:if 条件a 作用a;
else 作用b ,如果条件a不成立,则触发作用b,如果条件a成立,则触发作用a
最好的return (z);表示的是将返回值定义为z(return有返回主函数的作用)
代码1
{ int max(int x,int y)
int a,b,c;
scanf("%d,%d",&a,&b");
c=max(a,b); 这里调用到了函数max,而在下面对max函数的定义则是将max函数定义了(如果我没记错,在math中好像有现成的max函数,头文件math与头文件stdio.h类似)
printf(“max=%d”,c);
return 0;
}
定义max函数
int max(int x,int y) 这里并不需要用到; 全局声明
{int z;
if(x>y)z=x;
else z=y;
return(z);
}
其作用则是取两个值中的最大值(两个值需要用逗号分隔,且是要用户来输入)

以上为第一章的内容
在这里,我们创建了一个(源文件,也就是以.c为后缀的文件,并不是.cpp的c++文件)
并且在源文件中创建了函数max,这是我们新创建的函数,在以后,我们可以main()作为主函数,.c作为主要源文件,将其他的创建源文件包含整合起来,也可以调用更多的函数。
就像是自己创建一个属于自己的工具一样,我们囤积的这些源文件,可以被组装为工具箱中的各个工具,里面的函数则是工具的更加细分的原理。
这些代码也被称之为【内置函数】,而我们创建的函数则是通过【内置函数】所创建的。

(这里我再提一嘴,虽然是夹带私货(但绝对不提倡具有攻击性的争议,因为无论如何,各个语言都是以自己的行为来执行这种【实现自己目的的概念的】),我现在有点明白开源是什么东西了,以我主观的理解,就是将平台上的各个【源文件】放入自己的【工具库】中,以此调用并不完全属于自己的【函数工具】。而且也可以将自己的源文件或者设定的函数放上去,也会使更多人得到便利)
以上为第一章所有内容,不过或许会有许多没有提及到的,大家如果觉得进度慢的话可以自己去买书来看,或者pdf也可以,我这里的是实体书,也就没去找pdf,这里还是建议大家去找个方便来的来就行,怎么方便怎么来。
第二章提及到了算法,或许我会去查更多的资料来进行对其的理解(大家一定要保证睡眠)

文章概念标题:简单程序的整合运用以及简单函数概念的创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值