网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月26日漏签0天
c语言吧 关注:801,951贴子:4,377,157
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 下一页 尾页
  • 23回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
>0< 加载中...

给那些刚学或想学C的同学们

  • 取消只看楼主
  • 收藏

  • 回复
  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
更新c基础教程


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大家好,我是Swpan,一个混迹在编程中的小白。个人对编程有着独特的爱好,在我看来,一个个代码仿佛魔力一般深深吸引着我。
想起当初接触编程界还是因为对黑客有着深深的好奇,所以只会玩电脑游戏的我慢慢开始放下,转到了代码的世界。我第一次接触的编程语言就是C语言,当时去图书馆买了一本关于C的书,也不怕大家笑话,我研究了一个星期才写装好了软件运行了第一个程序"Hello World!"当时兴奋的是难以形容的。
后来在我努力以及磕磕碰碰中终于学完了C,就此C也成了我的"启蒙语言",尽管它虐我千百遍,但我依旧爱它爱的深沉。
因为我学过C所以也知道初学习一些编程语言时的会出现的困惑与迷茫以及有时不时想放弃的想法,所以我想在这里给大家分享一些自己的学习经验,能激励大家。希望大家都能爱上这美丽的语言,爱上编程。


2026-04-26 13:36:32
广告
不感兴趣
开通SVIP免广告
  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一:你了解编程语言嘛?
相信大家都听说过 Java、C、C++、Python、C#等一些语言吧。尤其是Tiobe(编程语言排行榜)上独占榜首多年的java,热度不减的老牌编程语言C,以及近年火起的Python。
相信喜爱编程的朋友们都想学一学这些强大的语言,其实我们现在使用的大多数的编程语言都是计算机的高级语言,那有多少人了解过这些高级语言的由来呢?
下面就让我来给大家普及一下计算机语言的由来:
1. 机器语言:在计算机诞生初期,计算机内部采用的是二进制也就是0和1。而用二进制表示的,计算机能识别和直接执行的机器指令的集合就叫作机器语言。计算机内1代表计算机里的高电频,0代表低电频。程序员们用0, 1数字编成的程序代码打在纸带或卡片上,1打孔,0不打孔,再将程序通过纸带机或卡片机输入计算机,进行运算。像直接用这种二进制写程序,太复杂,耗费太多的时间成本,而且也没多少人能写出来。于是为了方便能写出程序,人们就发明了汇编语言。

2. 汇编语言:汇编语言,它的主体就是汇编指令,人们就用这些指令来写程序。但是有个问题,就是我们知道,计算机它只读得懂机器指令,那怎么办呢?我们人都是很聪明的,后来能就发明了一个能将汇编指令翻译成机器指令的翻译软件,那就是编译器。从此人们就可以直接用汇编写程序让计算机执行了。
3. 高级语言:汇编虽好,但是这个语言不太接近人类的自然语言,而且它依赖于计算机的硬件,根据人们的需求以及计算机行业的发展,一个个具有时代特色的高级语言就诞生啦!就如我们如今所看到的一般。

以上就是编程语言的简要发展过程,如果大家想更加深入了解这方面知识的话,可以google,百度了解。有写的不好的地方欢迎大家指出,谢谢~
2018.9.4更新完结,明天继续。


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二:C的历史及起源

上一节给大家介绍的是编程语言的历史,今天这一节我来讲讲C语言的历史吧,学习一门语言就像和一个人交朋友一样,如果你不了解他那怎么能交往下去呢,所以学习一门前语言时你需要简要的了解其历史:
想必大家都知道贝尔吧,就是那个发明电话的老先生,记得上小学的时候,科学老师一直让我们背谁谁谁发明了啥啥啥,我记忆力不行反正就只记住了几个,其中一个就是贝尔。
那么大家知道贝尔实验室吗?这个实验室可以说与贝尔老先生有着紧密联系的。不仅如此这个实验室还发明了很多东西,据说一天就能申请三个专利,还获过好几次诺贝尔奖。可谓非常牛皮了!而我们强大的C语言就是出自这个实验室。
那既然C语言出自贝尔实验室那又是谁发明的呢?不要急听Swpan慢慢给您道来。
在1942年的时候第一台计算机诞生,我上回也讲到,初期的计算机机程序呢只能用010101来写。于是为了顺应时代的发展,第二代计算机于1957年诞生了,在此期间计算机内的软件开始使用面向过程的编程语言,如fortran,algol等。
上面提到的那个algol呢,它在1963年的时候被剑桥大学发展成为CPL语言(这个大学也挺牛啊)。之后在1967年这个学校有个叫马丁理查兹(Matin Richards)的大神对CPL进行了简化,于是产生了BCPL语言。
现在我们把镜头转到贝尔实验室,两年之后也就是1969年贝尔实验室的一个牛人肯 汤普森(kenThompson 这个人可是获得过计算机界最高荣誉———图灵奖的人)独自编写了Unix操作系统的最初版本。但是吧这个系统最初是用汇编写的,很难调试和改进。所以为了系统的未来着想。这个牛人啊他就在BCPL(也就是马大神写的那个)的基础上开发了B语言!
话说不久之后嘞,马大神(Matin Richards)他也加入到了Unix的研究当中,两个一个牛人,一个神人产生了思想上的激情,于是unix得到了进一步的发展。后来马神(Matin Richards)他觉得B语言在后续Unix的发展中起到的作用已经快不行了,于是他着手开发B语言的升级版。刚开始他把这个升级版叫作NB(注意哈,****的意思,是New B),后来呢,随着使用之后不断的改进,它越来越偏离B语言,于是!!他和肯大神(ken Thompson)以及他团队里的人给B取了一个新的名字——C语言!
在之后C语言不断改进,逐渐稳定下来之后也就成了独立的个体。(它以前只是Unix的副产品)

好了今天就到这吧,从明天开始将进入程序代码区,请前往此地图打怪的同学做好准备。
2018.9.5更新完结,明天继续,我是Swpan,一个小白。


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
三.第一个C程序
不说废话,直接上图。

相信这段代码对很多人来说都很熟悉吧,在很多编程的书中,开篇大多数让大家写的第一个程序就是“Hello World!”.我的教程也不例外。这个词最早出现在《The C Programming Language》这本古老的书籍中,于是后来这一段也成为了一种延续下去的传统。
想象一下,当你第一次写这个程序,此前都没成功过。经历千辛万苦后现在终于成功了,成功在命令行或者终端上输出了这段“Hello World!”。对于小白的你,这是不是一件值得兴奋的事呢?反正我当初是挺兴奋的!
不说废话了,上一下这个代码的效果图:

上面是执行在命令行上的效果。
下面我来具体讲解一下这段小程序:
第一行:#include <stdio.h> 这行是必不可少的,#include这是一个指令,<stdio.h>是C语言中的标准输入输出库(C语言有很库,每个库都有自己的功能。),因为C语言没有内置的“读”“写”所以只能从<stdio.h>中获取。(以#开头的都是指令,结尾不加分号)
第二行:main英文翻译:主要部分。跟它的翻译一样,main()函数是程序的主体部分,程序的执行都在main()函数中进行。main()函数前面的 int 表示程序结束时会返回一个整数值,括弧里的void表示main函数没有参数。(这一行死记就行,因为这是标准格式)
第三行:这一行是“{”,便是程序的开始。与第六行对应,第六行“}”表示程序的结束。
第四行:printf()这表示格式化输出,就是在命令行上输出()里的内容,这玩意就是通过<stdio.h>获取的。这里()里的是一串字符串“Hello World!\n”, 而“\n”表示换行的意思,意味着这行结束,跳到下一行。整句的作用就是在命令行输出“Hello World!”再换一行。
第五行:return 有两个作用:1.是使main函数终止。2.指出函数返回值为0,表明程序结束。
第六行:跟第三行一样。
上面说了那么多,其实你只要记住这个结构就行:
指令(一般多为#include <stdio.h>,,其他的,学到后面会知道。)
int main(void)
{
语句
}
这个基本格式记住,死记也要记住。在你不太了解一个东西的时候,不要对它追根刨底。刚开始知道的太多你越不容易理解,有时候要不求甚解。等到了后面接触的东西多了,你自然而然就知道了。
所以我上面的东西如果你一时半会看不懂,就给我去打代码,去给我记。有一个记忆存留在你脑海里就行了,初期我们要学会!而不是求精!等你学会了,有的是时间研究精的。
好了今天就到这,希望会的人再复习一下,不会的上手打一下,编程不是靠看书,靠码字。有问题的贴吧后台联系我,虽然我不一定能及时看到,但是我看到一定会回!
2018.9.6更新完结,明天继续,我是Swpan,一个小白。


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我发现我发上去的第三篇文章stdio.h被隐藏了,我给大家再补充一下。stdio.h是C语言的标准输入输出库。printf能输出全靠了stdio.h


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
四:变量与赋值
相信大家家里都有杯子吧,那如果我们渴了,要喝水,喝饮料了,是不是就会去把水或者饮料倒在杯子里呢,倒的量也决定于我们自己吧。
今天要介绍的变量就是跟这个杯子相似。
1.首先了解一下,什么是变量:就是没有固定值,可以改变的量。和它对应的是常量:比如啊2,3,1,6这些固定不会改变的量,而变量就是a,b,c这些未知的量,因为你不知道它里面存放的数据是啥。
那么在C语言中变量的作用是什么呢?就是为了存储临时的数据。就像为了喝水,就要用到装水的杯子。
2.每个变量都必须有一个类型,类型就是用来说明变量存储的数据种类。C语言的类型有很多,为了减少初学者的负担,我们先从int 和 float 这两种来介绍。
int(integer的简写)类型的变量可以存储整数如:1,2,-90等。它的整数取值范围是有限的,最大的整数通常是2147483647
float(floating-point的简写)类型的变量可以存储比int类型变量大的数值,而且它一般用来表是:278.3123,,,,67.5431等带小数的数值
这两个就像你用杯子喝饮料,可以喝不同类型的饮料,比如橙汁啊可乐啊等等,就像变量可以有很多类型一样。
3.那现在我们知道了变量要有类型,那么它应该也要有名字吧!
那么我们就要给它一个名字,那怎么给呢?看我下面的操作就对了!

看上面我写的两行东西,第一行意思是 num1的类型是int,第二行意思是num2的类型是float
现在变量不仅有名字还有类型。
这种给变量名字和类型的操作叫什么呢?
这叫做声明,作用:用于向程序表明变量的类型和名字。
4.变量变量说了是会变的量,那为了让它存一个我们想要存的数值那该怎么办呢?
赋值!通过给变量数值的操作名曰:赋值!
如下:

这个就是赋值,这上面的赋值是将两个常量赋值给两个变量。
下面我们来看一个运用今天知识点的程序:

效果图如下:

下面解释一下这个程序:
基本格式我就不说了,针对新知识讲解一下。
三四行,上面讲过了,这是对变量声明然后进行赋值的操作,不同类型对应不同的值。
第五行:printf()昨天说过,这是格式化输出。通过stdio.h标准输入输出库获取。那为什么叫格式化输出呢?大家都看到这个程序中有%d,%f,这两个叫作格式说明符,所以printf的作用就是输出这些格式符。
printf()引号里是要显示的内容,像上面程序"num1=%d,num=%f\n"就在命令行上显示了,那%d,%f为什么不显示呢?因为他们对应的是后面引号外num1,num2,所以显示的是这两个变量的值。%d只能显示int类型的值,%f显示float的值。
当然除了给变量进行特定的赋值,我们还可以通过scanf()进行手动赋值,这个明天再讲。
2018.9.7更新完结,明天继续。我是Swpan,一个小白。


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天有事明天给大家补上,抱歉啦


2026-04-26 13:30:32
广告
不感兴趣
开通SVIP免广告
  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
五:初始化、定义、读入输出、常量、标识符
大家好!又是新的一天,今天教程继续更新!
1.初始化

大家还记得这个吗?如果忘记了我直接锤烂你的头。
我说过将常数或者表达式给变量的方式叫作赋值。
赋值是这样的:你可以先给num1一个值,后面你不高兴了,在后面的程序中又给了num1一个新的值,这些都叫做赋值。
那么给一个变量赋值,是不是有个第一次赋值的过程,这个第一次赋值的操作过程就是初始化。
因为刚开始,你不给一个变量赋值,大家都知道变量的值是可变的,所以我们无法知道它的值。所以我们就要进行第一次赋值,也就是初始化了。
初始化你也可以理解为:给变量赋的第一个值,也就是变量的第一次嘛。
2.定义
之前讲过声明,声明就是给变量取类型和名字,也仅此而已。可是我们变量要赋值吧,但是赋值是有个条件的,就是这个变量要被分配空间。声明只是给它了名字,那空间怎么办呢?
这就要提到一个名词——定义。
定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
声明:用于向程序表明变量的类型和名字
大家注意到上面定义和声明的区别了吗。
只给变量取名字和类型的操作过程叫作声明,给变量取名字和类型,并且赋值的操作叫作定义。

这就是定义。
定义一定是声明,声明不一定是定义。
大家不要把赋值和定义搞混,这两个是包含的关系。定义包含赋值。就是说赋值是定义的儿子。
3.读入和输出
很多程序都要让我们从键盘上键入数据的。所以为了获得用户的输入我们就要用到scanf函数,它是C函数库中与printf相对应的函数。
假如我要从键盘上给num1这个变量赋值,然后再输出,我可以这样写。
int num1=0;
scanf("%d",&num1);
printf("%d\n",num1);
这样就成功给num1赋值成功了,并且成功输出。
其中字符串“%d”说明scanf读入的是一个整数,而num1是一个int型变量,用来存储scanf读入的输入,&运算符在这里很难解释清楚,因此现在只说明它在使用scanf函数时通常是必需的。
printf就不讲了,之前有讲过。
4.常量
我们讲过变量,也提到过常量。
那变量可以定义它的名字,常量可以定义名字吗?
这当然是可以的啦!
定义常量的名字,我们要用到宏定义:
#define SUM 16
#define 常量名字(建议大写) 数值
这个宏定义和#include一样都是指令,所以后面不用加分号。
#define SUM 16
int num1=2;
int num2=0;
num2=num1+SUM;
printf("%d\n",num2);
这里输出的结果就是18.
因为num1赋值为2,SUM表示常量16,所以2+16就是18,再把18赋值给num2,输出num2的数值就是18了。
这就是给常量定义名字,直接用名字代表一个常量。
5.标识符
这呢,说的直白点就是给变量,函数,宏等取名字,想上面我们给变量取得名字就是标识符。
标识符一般为字母,数字,下划线组成。
但是不能以字母开头
num1_m,_num1这都是正确的。
78num这就是错误的。
而且标识符不能与c自带的相同,也就是不能跟int,float等一样。
2018.9.9更新完结,期待下次更新。我是Swpan,一个小白。


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我的失误,标识符不能以数字开头,可以字母,下划线开头


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
明天,出编程题把之前学的都巩固一下,都给我回去敲代码


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我不知道是贴吧不让分享教程还是什么原因?为什么我今天发的教程帖一直被删?


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
https://mp.weixin.qq.com/s/csO1Ra01bOU9n3bhmYGP2A
大家试一下这个形式的怎么样


  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
第七课:


2026-04-26 13:24:32
广告
不感兴趣
开通SVIP免广告
  • 白衣人
  • 异能力者
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好了现在链接也发不了了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 23回复贴,共2页
  • ,跳到 页  
<<返回c语言吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示