c新手吧 关注:8,602贴子:48,094

「福利」C语言新手教程

只看楼主收藏回复


群里很冷清有木有,没有几个技术性帖子来看,所以闲来无事,慢慢更新这个新手
教程,我水平不高,肯定会有说错的地方,有原则性的地方务必要帮我指出,以免
产生误导。


IP属地:天津1楼2013-12-17 14:18回复
    3、我改用什么编译器(IDE)呢?(Win X不能用vc6怎么办?)
    名词:
    IDE:集成开发环境。详解:baike.baidu.com/link?url=ntpmFKinui8cPvER2c2sNtKLb1R67Xumkk74YhEuvg4lvcT_DZIMjLCnWFfyT5aW6wauHzBdTTyDvrYJAK2wG0W0qbJhoiLJfBS6pE67PB_upvAXz-SIIkYvqxm4E_J2
    编译器:将“高级语言”翻译为“机器语言(低级语言)”的程序。详解:baike.baidu.com/view/487018.htm
    链接器:将一个或多个由编译器或汇编器生成的目标文件外加库链接为一个可执行文件。
    详解:baike.baidu.com/view/1402117.htm
    调试器:调试程序错误的工具。详解:baike.baidu.com/view/185339.htm
    Win 7、8、8.1都是支持VC6,请不要随意下载网上那些类似精简、绿色版的,类似以
    win7 vc++6.0 之类的关键字去搜,可以找到一大堆。
    再有,VC6是98年出的,很古老的东西,很不利用学习现代的C语言,尤其对C++支持极差。
    其实最好的学习环境是在Linux下,不过貌似大部分新手无法接受,下面推荐几个IDE:微软
    的VS系列,最好用10、12、13版(均为VC6后代,操作基本一样),codeblocks,dev,cfree,还有个个人比较喜爱的文本编辑器Sublime,这些都是比较好的开发工具。


    IP属地:天津3楼2013-12-17 14:39
    收起回复
      4、我该怎么学?
      找本“正确”的书,每天读“懂”多少页,对应的去敲代码尝试下新学到的知识,没事关注下
      别人的代码,不懂的mark下记住要去学,懂的,看看别人是如何实现的,有没有值得借鉴
      的地方,多多拓展,用不了多久就入门了。
      5、不知道还有什么问题。。。反正我当时很随意的就学了。。


      IP属地:天津4楼2013-12-17 14:45
      回复
        顶。
        bdhd:// ﹏₯㎕ˇ_____________________________________   ♥  青丝柔,绕指凉,微微一笑断我肠。  ♥  倾她城,做她王,脱她衣服上她床! ♥


        IP属地:上海来自Android客户端6楼2013-12-17 14:57
        回复
          已收藏。
          bdhd:// ﹏₯㎕ˇ_____________________________________   ♥  青丝柔,绕指凉,微微一笑断我肠。  ♥  倾她城,做她王,脱她衣服上她床! ♥


          IP属地:上海来自Android客户端7楼2013-12-17 14:58
          回复
            第二章 C语言浅入
            让我们来看第一个C程序(注:楼主IDE为vs2012)

            第一行的#include 为预编译指令,意思是通知编译器,我要使用stdio.h这个头文件。
            第二行为主函数,每个C程序都需要一个唯一的主函数。
            推荐主函数格式为:
            int main()
            {
            return 0;
            }
            第四行为输出语句,printf是c标准库的一个输出函数,可以任意更改输出的内容,""内的末尾的\n为转义字符,代表换行。


            IP属地:天津8楼2013-12-17 15:05
            收起回复
              不是hello world,差评
                  //——螃蟹在剥我的壳,笔记本在写我。漫天的我落在枫叶上雪花上。而你在想我。


              IP属地:贵州来自Android客户端9楼2013-12-17 15:50
              收起回复
                楼楼快更新呀 我等着呢


                IP属地:湖北10楼2013-12-17 23:44
                收起回复
                  不更了。。
                  bdhd:// ﹏₯㎕ˇ_____________________________________   ♥  青丝柔,绕指凉,微微一笑断我肠。  ♥  倾她城,做她王,脱她衣服上她床! ♥


                  IP属地:上海来自Android客户端11楼2013-12-18 09:14
                  收起回复
                    接上文
                    从这第一个程序,我们应掌握以下内容:
                    1、每个c程序都需要一个主(入口)函数,即main,它是唯一的,不可出现多个。程序
                    均由main函数开始执行。main函数详解:see.xidian.edu.cn/cpp/html/725.html
                    2、程序的第一句为#include <头文件>,这是预编译语句,预编译,顾名思义,即是在正式
                    编译程序前需要进行的工作,因为我们在程序中用到了printf语句,而它是库函数,你的
                    程序并不是认识它是什么东西,所以需要#include<stdio.h>,stdio.h即包含了printf的声明,
                    这样编译器就知道printf是干什么的了,你就可以在后面的程序中使用。总结,使用了C库
                    函数,就要include对应的头文件。预编译语句详解:baike.baidu.com/link?url=osksY5-6TfAAN9J2m_qCMmccBb0buZtkYMUHNwmMJ09MfbthdwRghVwqdOwBSQ7o
                    3、在printf语句中,出现了一个\n这个东西,它叫做转义字符,代表换行符,它代表着本行
                    结束,下面从下一行开始。转义字符,即用这个字符代表某个意思,转义字符还有很多,
                    详解:baike.baidu.com/link?url=MCTxM8RfXHfK3Xx95t0w5Jo3x3BR06fjUxHpAZqTSIglZeZ-VEca7eX7mgWUp8Yk
                    4、printf,它是一个函数,在这里只需要记住,想要输出什么内容,就按照这个格式:
                    printf("想输出的内容"); 括号、引号、结尾的分号,都是不可缺少的。


                    IP属地:天津12楼2013-12-18 16:15
                    收起回复
                      看懂了这第一个程序,我们应该能够自己写一些程序了。下面是示例:

                      如图,在需要换行的地方就放上一个\n,还有,printf语句可以写多个,你可以把想要输出
                      的内容放在一个里面,当然也可以合理的分开放置。

                      甚至可以像这样,用符号拼出图形。
                      发挥你的想象力,去使用printf。


                      IP属地:天津13楼2013-12-18 16:28
                      收起回复
                        更近一步,阅读一下程序。

                        在main函数中的第一句,出现了int number = 1;这句代码的意思是,要定义个int类型的变量,变量名称为number,变量的初始值为1。在第一个printf中,出现了一个%d,这意味着标识
                        此位置会输出一个量,%d 即代表整型,然后在双引号后面,对应的给出了%d所对应要输出的内容,即number的值。这个位置不仅可以是变量,而且可以是任意的表达式,例如第二个printf。还有,第7行,变量可以进行运算,图中的代码意思就是把number的值加上1,然后等号意味着把这个值赋值给number,于是number的值就变为2了。

                        在一个printf中,还可以出现多个%d,分别对应多个值,%d是格式控制符,在此只需记住,想要输出一个整型值时,就需要%d。
                        程序中,我设置变量的名字为number,C语言对变量、常量等的名字是有限制的。
                        在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。
                          在使用标识符时还必须注意以下几点:
                          (1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。
                          (2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。
                          (3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。
                        在同一作用域标识符的定义不能够重复,即前面定义了number,就不能够在同一作用域再
                        定义一次number,它只能存在一次,同时C语言保留了一些关键字,它们被C语言使用,
                        我们的变量名也不同和其相同。
                        auto enum restrict unsigned break extern return void case float short volatile char for signed while const goto sizeof _Bool continue if static _Complex default inline struct _Imaginary do int switch double long typedef else register union
                        再有,定义变量名时,也要注意不要和标准库的名字同名。。同名是会产生编译错误。



                        IP属地:天津14楼2013-12-18 16:49
                        收起回复
                          这样,我们的程序就是数字产生了联系,我们可以写出类似下面的例子。

                          继续发挥你的想象力,去应用你学到的东西。


                          IP属地:天津15楼2013-12-18 16:52
                          收起回复
                            第三章 数据
                            任何程序都离不开数据,C语言包含了很多内置类型,例如整型int、浮点型float和double。
                            前面我们学习了如何输出内容,程序必然要与人进行交互,下面会讲解输入内容。

                            运行本程序时你会发现,执行到请输入。。那句时,没继续输出后面的内容,并且此时你
                            敲击键盘会在程序中显示对应的内容,此时就是等待用户输入的状态,
                            程序第6行的scanf,是C库的标准输入语句,它的格式与printf类似,同样的%d,不过这次
                            代表的是需要在此位置输入一个整型数据。然后,后面对应的不在是变量,而是添加了&,&是取地址符,在此只需这样理解:由用户输入一个整型(%d)数据,存在number那里,
                            即存到哪里去,就&谁。
                            scanf、printf的用法非常像,大家注意不要用乱了哦。
                            printf详解:baike.baidu.com/link?url=zem0a__3Y-qdn5e3H7sE9W9Nt9gHiCTzmMSfw6rbI2CBn5Z4MxBhxDD6SsloPE1S
                            scanf详解:baike.baidu.com/view/1390039.htm
                            至此,我们就有了从用户处获取数据以及向用户显示数据的能力了。


                            IP属地:天津16楼2013-12-18 17:06
                            收起回复
                              怒赞+1


                              来自iPhone客户端19楼2013-12-21 08:47
                              回复