金年会

每日经济新闻
要闻

每经网首页 > 要闻 > 正文

c语言入门基础知识永久版51cto博客c语言0基础入门自学

阿斯特里姆 2025-11-01 19:11:56

每经编辑|陈小奇    

当地时间2025-11-01,gfyuweutrbhedguifhkstebtj,6996免费高清电视剧

没(mei)问题(ti)!这就为(wei)您奉(feng)上(shang)一(yi)篇(pian)关(guan)于C语(yu)言入门的(de)软(ruan)文(wen)。

C语言(yan)的初(chu)遇:从“Hello,World!”到数据(ju)世(shi)界的奇(qi)妙旅程(cheng)

你(ni)是(shi)否曾对着(zhe)电(dian)脑(nao)屏(ping)幕(mu),内心(xin)涌动(dong)着(zhe)创(chuang)造的冲(chong)动(dong),却(que)不(bu)知从(cong)何下手(shou)?是否(fou)曾听(ting)闻(wen)“编程(cheng)”、“代码(ma)”这(zhe)些神(shen)秘的词(ci)汇(hui),却(que)感觉它们(men)遥(yao)不可(ke)及(ji)?别担(dan)心,今天(tian),我们将(jiang)一同(tong)踏入(ru)C语言(yan)的奇(qi)妙(miao)世界,开(kai)启一段充满惊(jing)喜(xi)的编(bian)程(cheng)之旅(lv)。这(zhe)篇“C语言入门(men)基础(chu)知识永久(jiu)版”就是(shi)为你(ni)量身打(da)造的启航指南,无论(lun)你(ni)是(shi)对技(ji)术一窍(qiao)不通的“小白”,还是(shi)有(you)过(guo)初步接触(chu)却希望(wang)系(xi)统(tong)学(xue)习(xi)的(de)“小萌(meng)新”,都(dou)能(neng)在这(zhe)里(li)找(zhao)到属于(yu)自己(ji)的节(jie)奏。

初识C语言——你(ni)的第一个“数字(zi)朋友”

想象一下(xia),你即将(jiang)拥有(you)一(yi)位能听懂(dong)你指(zhi)令,并(bing)帮(bang)你处理(li)各种(zhong)事务(wu)的“数(shu)字(zi)朋友”。C语(yu)言,就(jiu)是这样一(yi)个强(qiang)大的(de)工具(ju)。它诞(dan)生于(yu)上世纪70年(nian)代,凭(ping)借其高效、灵活(huo)的(de)特性(xing),成为了操(cao)作(zuo)系统(tong)、嵌入式(shi)系统、游(you)戏(xi)开发等众多(duo)领(ling)域(yu)的(de)基石。学习C语(yu)言,不仅仅(jin)是学习(xi)一门编(bian)程语(yu)言,更(geng)是学(xue)习一(yi)种(zhong)解(jie)决问题的思维(wei)方式(shi)。

1.1“Hello,World!”——编(bian)程世(shi)界的敲(qiao)门砖

我(wo)们从最(zui)经典的(de)“Hello,World!”开(kai)始。这(zhe)句简(jian)单的代码(ma),是每(mei)个程序(xu)员(yuan)的(de)起点(dian)。它就(jiu)像(xiang)一(yi)个友好的(de)问候(hou),宣告着你与(yu)编程世界的第一次(ci)正式接触(chu)。

#includeintmain(){printf("Hello,World!\n");return0;}

看到这串陌(mo)生(sheng)的字符(fu),是不是(shi)有点小(xiao)激(ji)动?别急,我们慢慢来(lai)解析(xi):

#include:这(zhe)行代(dai)码像是(shi)告(gao)诉你的(de)电脑:“我要(yao)用到(dao)一些(xie)‘工具(ju)箱’里的功能,特别是(shi)那(na)个叫(jiao)做stdio.h的,它(ta)里(li)面有很(hen)多(duo)关(guan)于输(shu)入输(shu)出的‘零件(jian)’。”stdio.h是“StandardInput/OutputHeader”的(de)缩写(xie),是C语言标(biao)准库(ku)的一部(bu)分(fen),提供了诸(zhu)如打印文(wen)本(ben)到屏幕(mu)(printf)和从键盘(pan)读取输(shu)入(ru)(scanf)等功能(neng)。

intmain(){...}:这(zhe)是C语言(yan)程序的(de)“心脏(zang)”。每(mei)个C语言(yan)程序(xu)都(dou)必(bi)须(xu)有一(yi)个(ge)main函数,它是程(cheng)序的入(ru)口(kou)点。当程(cheng)序运行时,它(ta)会首先(xian)找到并执(zhi)行main函(han)数里(li)的(de)代(dai)码。int表示(shi)这(zhe)个函(han)数执行(xing)完(wan)毕后(hou)会返回一(yi)个整(zheng)数值,通常(chang)用来(lai)表示(shi)程序是否(fou)成(cheng)功(gong)执行(xing)。

printf("Hello,World!\n");:这就(jiu)是真正“打招呼(hu)”的命令。printf是(shi)stdio.h库中的一个函(han)数,它(ta)的作用(yong)是(shi)将(jiang)括(kuo)号里(li)的内(nei)容输出到(dao)屏幕(mu)上。"Hello,World!\n"是(shi)我们想要(yao)输(shu)出(chu)的文本,\n是(shi)一个特殊的“转(zhuan)义(yi)字(zi)符”,意(yi)思(si)是(shi)“换行(xing)”,这样下一(yi)条输出就会(hui)出现在(zai)新的(de)一行。

return0;:这句(ju)话是在告诉操(cao)作系统:“我(wo)这个程序已(yi)经顺(shun)利完成(cheng)了(le),没有出(chu)现什(shen)么大问(wen)题。”返(fan)回(hui)0通常表(biao)示(shi)程序(xu)成功(gong)执行(xing)。

通(tong)过这段简单(dan)的代(dai)码,你已经迈出(chu)了编程的(de)第一(yi)步!我(wo)们(men)不(bu)仅看到了(le)代码(ma)如何“工作(zuo)”,还初(chu)步了(le)解(jie)了(le)C语言(yan)的一些基本结(jie)构,比(bi)如头文件、函数、语句以及(ji)如何(he)输出信息(xi)。

1.2变量(liang)与数据类(lei)型——给(gei)信(xin)息(xi)安个(ge)家

编(bian)程的本质(zhi)就是处理(li)信息(xi)。而C语言为我们(men)提供(gong)了(le)“变量”这(zhe)个(ge)概念,就(jiu)像(xiang)是(shi)给信(xin)息安(an)了个(ge)家,你(ni)可以(yi)给它(ta)起个(ge)名字,并(bing)且(qie)知道(dao)它里(li)面装的是(shi)什(shen)么(me)类(lei)型(xing)的信息。

数(shu)据(ju)类(lei)型:C语(yu)言有(you)多种(zhong)基本的(de)数据类型,就像(xiang)不(bu)同形(xing)状的容(rong)器(qi),可以(yi)存放(fang)不(bu)同类(lei)型(xing)的数据(ju)。

int:整(zheng)型,用来(lai)存(cun)放整(zheng)数,比(bi)如10,-5,0。float:单(dan)精(jing)度(du)浮(fu)点型,用(yong)来(lai)存放带(dai)有小数(shu)的数(shu)字(zi),比如(ru)3.14,-0.5。double:双精(jing)度(du)浮(fu)点型,比(bi)float能存放更精(jing)确的(de)小(xiao)数(shu)。char:字符(fu)型,用(yong)来存(cun)放单个字(zi)符,比(bi)如'A','b','7'。

变(bian)量的(de)声(sheng)明(ming)与(yu)使用:我(wo)们(men)需(xu)要先“声明(ming)”一(yi)个(ge)变(bian)量,告(gao)诉(su)电(dian)脑(nao)它是(shi)什么类型,然后再给(gei)它“赋(fu)值(zhi)”。

#includeintmain(){intage;//声明(ming)一(yi)个整(zheng)型变(bian)量,名字叫(jiao)ageage=25;//给age赋(fu)值为25floatprice=19.99;//声明(ming)一个(ge)浮点型变(bian)量,名字(zi)叫(jiao)price,并直(zhi)接赋值(zhi)为19.99charinitial='J';//声明(ming)一(yi)个(ge)字(zi)符(fu)型变(bian)量(liang),名(ming)字叫(jiao)initial,并赋(fu)值为(wei)'J'printf("Myageis:%d\n",age);printf("Thepriceis:%.2f\n",price);//%.2f表(biao)示(shi)保留两位小(xiao)数(shu)输出(chu)浮点(dian)数printf("Myinitialis:%c\n",initial);return0;}

在(zai)这个例(li)子中(zhong),我(wo)们用(yong)intage;声明(ming)了(le)一个(ge)名(ming)为age的整(zheng)型(xing)变量,然后用age=25;给(gei)它赋予了值(zhi)25。printf函数中(zhong)的%d,%f,%c被(bei)称为“格式(shi)控(kong)制(zhi)符”,它们告(gao)诉(su)printf应该以何种(zhong)格式来(lai)输出后(hou)面的变(bian)量。%d用于(yu)输出整数,%f用于(yu)输出(chu)浮点(dian)数,%c用(yong)于(yu)输出字符。

1.3运算符(fu)——让你(ni)的数据“动(dong)”起(qi)来

光有(you)数(shu)据(ju)还不够(gou),我(wo)们还(hai)需(xu)要对数(shu)据进行各种“操(cao)作”。C语言提(ti)供了丰富的运(yun)算符,让你(ni)的(de)数据“动(dong)”起来。

算(suan)术运(yun)算(suan)符:最常见的(de)就(jiu)是加(jia)(+)、减(-)、乘(*)、除(chu)(/)和(he)取模(mo)(%)。cinta=10;intb=3;intsum=a+b;//sum=13intdifference=a-b;//difference=7intproduct=a*b;//product=30intquotient=a/b;//quotient=3(注(zhu)意:整数除法(fa)会舍弃小(xiao)数(shu)部(bu)分)intremainder=a%b;//remainder=1(10除(chu)以3余(yu)1)赋(fu)值运算(suan)符(fu):除(chu)了=之外,还有+=,-=,*=,/=,%=等(deng),它们(men)可(ke)以(yi)简化(hua)复合(he)操作。

例如(ru)a+=5;等价(jia)于(yu)a=a+5;。关(guan)系(xi)运(yun)算符:用于(yu)比(bi)较(jiao)两个值,结(jie)果是(shi)真(非(fei)0)或假(jia)(0)。包(bao)括(kuo)大于(yu)(>)、小(xiao)于(yu)(<)、大于(yu)等于(>=)、小于等(deng)于(yu)(<=)、等于(==)和不(bu)等于(yu)(!=)。逻辑(ji)运(yun)算符(fu):用(yong)于组合(he)逻(luo)辑表达式,包(bao)括逻辑与(yu)(&&)、逻(luo)辑或(||)和逻(luo)辑(ji)非(fei)(!)。

理解了变(bian)量(liang)、数(shu)据类(lei)型和(he)运算(suan)符(fu),你已经掌握(wo)了C语(yu)言最基础的数据(ju)处(chu)理能力。这就像(xiang)是(shi)学(xue)会(hui)了字母(mu)和(he)单词(ci),你就(jiu)可(ke)以开(kai)始“写(xie)句子”了!

C语言(yan)的(de)进阶(jie)之(zhi)路(lu):从逻辑分(fen)支到循(xun)环(huan)世界(jie),构建你的(de)智能(neng)程(cheng)序(xu)

在Part1中(zhong),我们成功(gong)迈出了C语(yu)言的(de)第(di)一步,学(xue)会了如(ru)何(he)让程(cheng)序“说(shuo)”出“Hello,World!”,并(bing)初步(bu)掌握(wo)了数据的(de)存(cun)储(chu)和基(ji)本运(yun)算。现(xian)在,是时(shi)候(hou)将你的(de)编程技(ji)能推(tui)向(xiang)一个(ge)新(xin)高度了(le)!我(wo)们将深(shen)入(ru)探(tan)索C语言(yan)的核(he)心,学(xue)习如(ru)何让(rang)程序(xu)具备(bei)“思考”和(he)“决(jue)策”的(de)能力(li),掌握控制(zhi)程(cheng)序(xu)流(liu)程的关(guan)键技(ji)巧,构建(jian)出(chu)更复(fu)杂、更智能(neng)的程序。

2.1控制(zhi)流(liu)程:让程序(xu)“会思(si)考(kao)”

如(ru)果程序(xu)只(zhi)会按照顺(shun)序一行一行地(di)执行,那它的(de)能(neng)耐就(jiu)太有限了(le)。C语言(yan)提(ti)供了(le)强大的控制流程语(yu)句(ju),让(rang)你(ni)的(de)程(cheng)序能够根据(ju)不(bu)同的(de)条件做出不同(tong)的(de)反应,或(huo)者重(zhong)复执行某个(ge)任(ren)务,这(zhe)才是(shi)程序(xu)智能(neng)的(de)开始。

条件判(pan)断(duan)(if-else语句):这(zhe)是让程序(xu)“会思(si)考”的(de)关键。你可以告诉(su)程(cheng)序(xu):“如果某(mou)个条件成立,就做这件(jian)事(shi);否则,就做另一(yi)件事。”#includeintmain(){intscore=85;if(score>=90){printf("优秀(xiu)!\n");}elseif(score>=80){printf("良好!\n");}elseif(score>=60){printf("及(ji)格。

\n");}else{printf("需要努力(li)!\n");}return0;}

在这个(ge)例(li)子(zi)中,程序(xu)会根据score的(de)值,选择(ze)最(zui)先满(man)足的(de)条(tiao)件进行(xing)打印。if后(hou)面(mian)跟着(zhe)的条(tiao)件(jian)在括号里(li),如果(guo)条(tiao)件为真,就(jiu)执(zhi)行它后(hou)面的(de)代码块;elseif是(shi)“否则(ze)如(ru)果(guo)”,用来(lai)检查另一个条(tiao)件;else则(ze)是“否(fou)则”,当(dang)以(yi)上(shang)所(suo)有(you)条件(jian)都不满足(zu)时执行。

选择结构(switch-case语(yu)句):当需(xu)要(yao)根据(ju)一个变量的(de)多个(ge)可(ke)能(neng)值来执(zhi)行不同(tong)操作(zuo)时(shi),switch-case会更加简(jian)洁(jie)高(gao)效(xiao)。#includeintmain(){chargrade='B';switch(grade){case'A':printf("Excellent!\n");break;//break语句用(yong)于跳(tiao)出switch结(jie)构(gou)case'B':printf("Good!\n");break;case'C':printf("Fair!\n");break;default://当(dang)没有(you)匹配项时执行(xing)printf("NeedsImprovement!\n");}return0;}

switch后面(mian)是你(ni)想(xiang)要(yao)判断(duan)的变(bian)量,case后面是可(ke)能的值。一(yi)旦(dan)匹(pi)配成功,就(jiu)执(zhi)行(xing)case后面的(de)代(dai)码,break会阻止(zhi)程序(xu)继续向下执(zhi)行其(qi)他case。

2.2循(xun)环结(jie)构:让(rang)程(cheng)序“重复(fu)执行”

很(hen)多(duo)时候,我们(men)需要让程(cheng)序(xu)重复执(zhi)行某(mou)一项任务(wu),直到(dao)满足某个条件(jian)为止。循环结(jie)构(gou)就(jiu)是为(wei)此(ci)而生(sheng)。

for循环(huan):通(tong)常用于(yu)已知(zhi)循(xun)环次数(shu)的(de)情(qing)况。它包含初始化(hua)、条(tiao)件判(pan)断和(he)更新三个(ge)部分(fen)。#includeintmain(){printf("Countingfrom1to5:\n");for(inti=1;i<=5;i++){printf("%d",i);}printf("\n");return0;}

这里(li)的for(inti=1;i<=5;i++)意(yi)思是:1.inti=1;:初(chu)始化,声(sheng)明(ming)一(yi)个(ge)变量i并(bing)赋(fu)值为1。2.i<=5;:条件判(pan)断,只要i小于(yu)等(deng)于(yu)5,循(xun)环就继续(xu)。3.i++:更(geng)新(xin),每(mei)次(ci)循环(huan)结束(shu)后,i的值加(jia)1。

while循环:当(dang)循(xun)环次(ci)数不确(que)定(ding),但知(zhi)道循环继续的条件(jian)时(shi),while循(xun)环是(shi)更好的选(xuan)择。#includeintmain(){intcount=0;printf("Countingusingwhileloop:\n");while(count<3){printf("Loopiteration%d\n",count+1);count++;//别忘了更新条件(jian),否(fou)则会造成死(si)循(xun)环!}return0;}

while循环(huan)只(zhi)要括号(hao)里(li)的(de)条件(jian)为(wei)真(zhen),就(jiu)会一(yi)直(zhi)执行循环体内(nei)的(de)代码。

do-while循环:与(yu)while类似,但它(ta)会先(xian)执行(xing)一(yi)次循环(huan)体,然(ran)后再(zai)判断(duan)条件。这意(yi)味着(zhe)即使条(tiao)件一(yi)开(kai)始就不满(man)足,循(xun)环体也(ye)会(hui)至少执行一(yi)次(ci)。#includeintmain(){intnum=10;printf("Executingdo-whileloop:\n");do{printf("Thiswillprintatleastonce.\n");num++;}while(num<5);//条件(jian)不(bu)满足,但已(yi)执行(xing)一次(ci)return0;}

2.3函数:模(mo)块化你的(de)代码(ma),提高效(xiao)率(lv)

随着(zhe)程序(xu)越来(lai)越复杂,把所有代码(ma)都写在一(yi)个main函(han)数里会变得非(fei)常混乱(luan)。函(han)数就像是(shi)乐(le)高(gao)积(ji)木(mu),你(ni)可(ke)以(yi)把完成(cheng)特定功能的代码块(kuai)封装(zhuang)起来(lai),给它起个(ge)名字,然后(hou)在需要(yao)的(de)时候(hou)“调用”它。这(zhe)不(bu)仅(jin)能让代码更清(qing)晰,也方便(bian)了复用。

#include//定(ding)义一个函数,用于计(ji)算两个数的和intadd(inta,intb){returna+b;}intmain(){intnum1=5;intnum2=7;intsum_result;sum_result=add(num1,num2);//调用add函数,并(bing)将(jiang)结果(guo)存入(ru)sum_resultprintf("Thesumof%dand%dis:%d\n",num1,num2,sum_result);return0;}

在这个(ge)例(li)子(zi)中,我们(men)定义了一(yi)个名(ming)为add的(de)函(han)数,它接(jie)收两个整型(xing)参(can)数a和(he)b,然后返回(hui)它们的和。在main函数中(zhong),我们通(tong)过(guo)add(num1,num2)来调(diao)用(yong)这(zhe)个函(han)数,并使用它(ta)的返回值。

2.4数(shu)组(zu):批量处理(li)数据(ju)

当(dang)我们(men)需要存储一组(zu)相同类型(xing)的数据时(shi),数组就派(pai)上用(yong)场了(le)。你(ni)可以想象它是(shi)一(yi)排整齐的格(ge)子,每个格子(zi)都(dou)可以(yi)存(cun)放一(yi)个数据,并(bing)且可(ke)以通(tong)过(guo)索引来(lai)访问(wen)它们(men)。

#includeintmain(){intnumbers[5];//声明(ming)一个可以存放(fang)5个整型数(shu)据的(de)数(shu)组(zu)//给(gei)数(shu)组赋(fu)值numbers[0]=10;numbers[1]=20;numbers[2]=30;numbers[3]=40;numbers[4]=50;//访(fang)问并(bing)打印(yin)数(shu)组(zu)元(yuan)素(su)printf("Thefirstelementis:%d\n",numbers[0]);//索引(yin)从(cong)0开始printf("Thethirdelementis:%d\n",numbers[2]);//使用循(xun)环(huan)遍历数组printf("Allelements:");for(inti=0;i<5;i++){printf("%d",numbers[i]);}printf("\n");return0;}

数(shu)组(zu)的索引(yin)是从(cong)0开始的,所以第一个元素的索引(yin)是(shi)0,第五个(ge)元(yuan)素的索引(yin)是4。

至(zhi)此,你(ni)已经掌握(wo)了(le)C语言(yan)中(zhong)最核心的(de)几个知识点:控制流(liu)程(if-else,switch-case)、循环(for,while,do-while)、函数以及数(shu)组。这(zhe)就像是你已经学会了如(ru)何组(zu)织词汇(hui)、构(gou)建(jian)句子,并且能(neng)够编写(xie)出(chu)能(neng)够根据不(bu)同情况(kuang)做出反应、重复(fu)执行任务,甚至(zhi)能够打包(bao)成功能的(de)“短(duan)文”了!

从(cong)“Hello,World!”到构(gou)建(jian)稍微复(fu)杂一点(dian)的程(cheng)序(xu),你(ni)已经走(zou)过了巨(ju)大(da)的(de)飞跃。C语(yu)言的世界广阔(kuo)而(er)深邃,但这篇“C语言入门(men)基础(chu)知识(shi)永久(jiu)版(ban)”为(wei)你(ni)提供了(le)坚实(shi)的地(di)基(ji)。未来(lai)的(de)学习之(zhi)路,无论(lun)是深(shen)入理解指针、结构(gou)体(ti),还是(shi)学(xue)习更高(gao)级的(de)算法和(he)数据(ju)结(jie)构,你(ni)都将(jiang)拥(yong)有(you)强大的起(qi)点(dian)。

继(ji)续(xu)探(tan)索,不断实践(jian),你终(zhong)将成为(wei)一名优秀的(de)C语(yu)言开(kai)发者(zhe)!

2025-11-01,91CM191白色妖姬吸精北歐名模MelodyMarks,信凯科技:公司将继续密切关注国家相关政策

1.hlj123红领巾,继东方通(300379)公司,实控人也被立案,股民索赔可期q弹大雷跳舞视频,中机认检(301508)2025年中报简析:营收净利润同比双双增长,应收账款上升

图片来源:每经记者 阿穆尔捷特 摄

2.石原莉奈为夫还债于老头+英语老师的小面包,千金药业:上半年归母净利润1.28亿元,同比增长8.50%

3.Chinese gay果冻+色骚妇,渤海银行长春分行被罚59.49万元:违反账户管理规定等

免费看女生私密部位+日本毛高清免费视,好时和亿滋国际股价下跌 天气担忧导致可可期货上涨

4秒带你冲进现场!鉴黄师岗位详解工作内容职责要求及发展趋

封面图片来源:图片来源:每经记者 名称 摄

如需转载请与《每日经济新闻》报社联系。
未经《每日经济新闻》报社授权,严禁转载或镜像,违者必究。

读者热线:4008890008

特别提醒:如果我们使用了您的图片,请作者与本站联系索取稿酬。如您不希望作品出现在本站,可联系金年会要求撤下您的作品。

欢迎关注每日经济新闻APP

每经经济新闻官方APP

0

0

Sitemap