搜索
查看: 1635|回复: 8
打印 上一主题 下一主题

#include<stdio.h>是神马意思

[复制链接]
跳转到指定楼层
楼主
发表于 2016-7-24 17:53:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
??????????
沙发
发表于 2016-7-24 18:58:22 | 只看该作者
[mw_shl_code=c,true]请在屏幕上输出下列内容:
hello world
这个问题,对刚开始学习C语言编程的同学们,一定是一个不小的难题,其实,C语言是一门很简
单的语言,
大家只需要掌握一点点只知识就可以做许多有意思的程序.
好的,让我先来展示出这个程序的源代码:
#include <stdio.h>/*引入printf函数所在的头文件*/
int main()/*主函数:要执行的代码写在这里面(花括号里)*/
{
    printf("hello world");/*输出hello world*/
    return 0;/*返回一个0*/
}
编译过后(没有编译器,赶快去下一个吧!)
如何编译(运行我们的程序)?
1.在这一个网址下载这一个IDE(GCC内核)
网址此版本附带我写的msg.h库)
https://yunpan.cn/cBDKTGFyEv6fv
提取密码 208b
2.下载后,把安装包解压,之后单击桌面上的 "啊哈C" 即可打开IDE
3.先删除编译框里的所有代码,之后写上上面我们刚刚编写的源代码.
4.单击运行,在弹出的对话框里写上想保存的文件名
(如果带.请在后面加上.c如: 我的文件1.0.c)
5.如果没有编译错误,就可以查看刚才编译的结果了.
等等,刚才的代码怎么编译正确后没有结果?
很简单,我们在return 0;之前空一行,写上这一段代码:
getch();
完整代码如下:
#include <stdio.h>/*引入printf函数所在的头文件*/
#include <conio.h>/*引入getch函数所在头文件*/
int main()/*主函数:要执行的代码写在这里面(花括号里)*/
{
    printf("hello world");/*输出hello world*/
    getch();/*让程序停顿一下*/
    return 0;/*返回一个0*/
}
再一次运行,哇!我们的这么短的代码,竟然在屏幕上输出了一句 hello world
好了,下面我们来讲解刚才的内容:
#include <stdio.h>
这一段代码是引入(包含)stdio.h这一个头文件
stdio.h 是C语言的一个标准头文件,它提供了大量的输入/输出函数,printf函数只是其中
冰山一角罢了.
我们在之后会详细讲解这一个库的.
#include 预处理指令
这一个预处理指令会让我们的预处理器(在编译器编译之前必经步骤)
包含指定的文件
怎么使用?
#include <文件名> 或 #include "文件名"
区别?
前者先去编译器include目录找 后者先去当前源代码所在路径找,再去include目录找
记住:一般来说在语句最开始写一个#的差不多都是预处理语句
如:
#include <stdio.h>
#include <conio.h>
对了,#include <conio.h>
与 #include <stdio.h> 的作用一样,只不过是引入了不同的头文件罢了(不同的函数),看了
的人都知道.
conio.h提供的功能:控制台(就是编译后,运行时出现的黑色小窗口)下的输入(比如getch函数)
与输出
int main()是什么意思?
这是大多数C语言程序必备主函数,程序的执行从main函数这里开始(也就是所谓的程序入口
地址)
要执行的代码写在main主函数的{}这一对花括号之间(注意:花括号不配对将会出现编译错误)
int说明main()函数将一个int类型(整数)的值
函数的定义:
返回值 函数名(参数1,参数2,...)/*注意,类型为void时,return语句不用写*/
{
    要执行的第N条语句...;
    return 值;
}
你看,我们就是把语句放在了{}这一对花括号里边(main里边!),所以,程序从main函数这个入
口地址开始执行,将我们的语句正确的执行了一遍,从而我们看到了我们想要的结果,计算机
也出色地执行了我们要他干的事(正确执行了编译成功的可执行文件)
printf函数
这一个函数负责输出.
使用方法:
printf(输出的内容(参数1),...);
不要被吓到了,其实,printf除了第一个参数是必须的,后面的都是可有可无的
比如:
printf("hello world!");
简单问题:printf能输出中文吗?
可以的,printf的第一个参数是一个字符串,字符串就是多个字符组成的一个串,就像一块块
羊肉就组成了羊肉串一样.
不过唯一不同的是,字符串末尾多了一个'\0'罢了(就像羊肉串最后一块羊肉的后面多了一只
那羊肉的爪子)
不过你也不用担心,编译器会自动在字符串的末尾加一个'\0'的,你就放心吧!
中文字符(即所谓的全角字符)就只是用2个字节保存的字符而已,而英文(即所谓的半角字符)
也只不过是用一个字节保存的字符罢了.
不信?
就写一段这样的代码:
#include <stdio.h>
int main()
{
    printf("你好,中文!");
    getch();
    return 0;
}
编译,运行,好的,屏幕上成功显示了 你好,中文!
getch()是什么意思?
getch函数,是一个输入函数,它会读取键盘上的一个字符,但是不显示.
因为不显示,所以,做停顿最好.(就像玩一个游戏,退出时,你打了一个a,结果屏幕就显示一
个a,心里总是有点不爽吧?)
他的返回值是一个字符.
不信?我们来看看一个有点超前的程序(之后讲)
#include <stdio.h>
int main()
{
    char c;
    c = getch();
    printf("输入的字符:%c",c);
    getch();
    return 0;
}
这个程序可能大家现在还看不懂,没关系,我们后面慢慢讲.
反正,编译,运行,随便打个字符(比如: a),
只见屏幕上一下子就显示了 输入的字符:a
打开程序输入个d,哇,屏幕显示了:
输入的字符:d
哇,好牛啊!
没什么,不要认为这很牛,毕竟编程需要一个过程,罗马不是一天建成的,C语言编程也不是
一天学会的,我们现在
需要——慢慢的积累!
注意:
getch函数属于conio.h
而conio.h不属于C语言标准,但这个库在大多数windows下的C语言编译器都可以用,同时,
在Linux下,他也有了相应的兼容包(conio.h linux兼容包(可以在网上搜))
return的作用:
返回一个值.
return 值; 或 return (值);
比如:
return 'c';/*返回字符c*/
return 1+1;/*返回1+1的值*/

return ('c');
return (1+1);
很简单吧?别看它简单,但他却有着大大的用途(就像小小的细胞构成人体)
好了,下一章我们将为你介绍更多有趣的知识,比如:更多的输出/输入函数
同时,学习了下一章,你就可以自豪的做出第一个你用C语言做出的计算器![/mw_shl_code]
板凳
 楼主| 发表于 2016-7-24 19:30:49 | 只看该作者
呃呃           
地板
发表于 2016-7-24 20:13:45 | 只看该作者
5#
发表于 2016-7-25 14:36:57 | 只看该作者
在不久的未来有家大型商店给每个人发了一个核心,然后还提供了很多很多的部件
每个人在这个核心的基础上都可以用商店里的部件组装出一个自己的多功能机器人
可是每次都要每个部件从头到尾组合的话会非常麻烦
于是这家商店会先把一些常用的零件先帮你打包组装起来
比如分成
手部件:可以抓东西的手,可以出拳的手
脚部件:有车轮的脚,有喷射器的脚
头部件:三角形的头,正方形的头
为了方便整理,每个大系列的部件都放在不同的房间
这个商店还有一个非常厉害的发明,瞬间传送门
只要在这些门上贴上标签,就能瞬间去到想去的地方
他们把瞬间传送门放在同一个房间,然后在这些瞬间传送门贴上标签
“这是去手部件的房间!”“这是去脚部件的房间!”
#include<stdio.h>是一个头文件,相当于一个商店预先帮你贴上标签的门
printf,scanf这些是里面的部件
你要先去放门的房间,然后才能去放部件的房间,使用这些部件
你以后还可以造自己的门,造放自己部件的房间
6#
发表于 2016-7-25 14:47:30 | 只看该作者
核心=不同的语言
部件=函数
放门的房间=头文件库
放部件的房间=函数库
7#
发表于 2016-7-25 14:58:00 | 只看该作者
这是我的理解,也是想让不懂的人尽量理解而已,有错请指出来,不要喷,大家好好相处嘛
8#
 楼主| 发表于 2016-7-25 17:42:55 | 只看该作者
呃                    
9#
发表于 2016-8-9 22:10:16 | 只看该作者
迷糊程度狂飙
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表