重学C语言---02C语言概述
1、第一个C语言实例
#include<stdio.h>
int main(void) /*一个简单的C程序*/
{
int num; /*定义一个num的变量*/
num = ; /*为num赋值*/
printf("I am a simaple");/* 使用printf函数*/
printf("computer.\n");
printf("My favorite number is %d because it is first.\n",num);
return ;
}
2、实例说明
2.1 #include<stdio.h> ---包含另一个文件
该行告诉编译器,包含文件stdio.h中的全部信息。文件stdio.h是所有C语言编译包的一个标准部分,这个文件对关键字输入额显示提供支持。
2.2 int main(void) ---函数名
C程序包含一个或多个函数,它们是C程序的基本模块。这句话表明C程序包含一个名称为main的函数,圆括号表明main()是一个函数的名字。int表明main()函数返回一个整数,而void表明函数不接收任何参数。
2.3 /*一个简单的C程序*/ ---C语言注释
符号/*和*/中的包含有助于使程序更清晰的的注释性内容,它们只是为了帮助读者理解,在编译时将被编译器忽略。
2.4 { ---函数体开始
这个花括号标志着组成函数的语句的开始,而结束花括号(})则标志函数结束。
2.5 int num; ---声明语句
这个语句表明你将使用num这个变量并且它是int(整型)的
2.6 num = 1; ---赋值语句
该语句表明把值1赋给num这个变量
2.7 printf(“I am a simple”); ---函数调用语句,调用printf()函数;
该语句表明,将双引号里面的内容输出,%d表示输出的值得位置和形式
2.8 return 0 ---返回语句
C语句可以给它的使用者提供或者返回一个值。
2.9 } ---结束
显然,程序必须要以花括号终止
3、程序细节
3.1#include指示和头文件
#indluce<stdio.h>这是程序的第一行。该语句的作用是相当于在文件中的位置插入文件名称为stdio.h的完整内容,相当于你经常在windows操作系统进行的复制黏贴操作,这样可以方便在多个程序之间共享共用信息,同时,也为程序添加一些基本功能。
#include语句是C预处理指令。通常,C编译器在编译前要对源代码做一些准备工作,称为预处理。stdio.h文件作为所有C编译包的一部分提供,包含有关输入和输出函数(例如printf())的信息以供编译器使用;这部分被称为头文件,最重要的是头文件包括了建立最终可执行文件时编译器所需要的信息;简言之,头文件指引编译器把你的程序正确组合在一起。
3.2main()函数
一个C程序总是被称为从main()函数开始执行(除一些例外情况外);int指明执行完main()函数后返回的结果是哪种类型;函数后的一对圆括号一般包含传递给函数的信息。
3.3注释
包含在/**/之间的部分是程序的注释。使用注释的目的是为了人们(包括开发人自己)更容易的理解你的C程序,可以放在任何地方。还可以有一下方式
/*j将注释分行
也可以的*/
/*
也可以这样写
*/
3.4花括号,程序体和代码块
花括号规定了main函数的界线,所有C函数必须用花括号表示函数体的开头和结束。
3.5声明语句
int num;这个特殊的语句声明两件事情:第一,在函数中有一个叫num的变量;第二,int说明这个num是一个整数,也就是说这个数不能是其他任何形式的数。编译器利用这个信息,为变量num在内存中分配一个合适的存储空间。句末的分号指明这一行C语言的一个语句的或指令,分号是语句的一部分,不可省略。
单词int是一个C语言预留的关键字,代表C中最基本的一个数据类型。
num是一个标识符,也就是你为一个函数、变量、或其他实体所选的名字。这样该声明把一个特殊的标识符和计算机内存中的一个特殊的位置联系起来,同时确定了该位置存储的信息类型。所有变量在使用之前都必须定义。
3.6 赋值
num = 1;是一个赋值语句,是C语言最基本的操作之一。其中“ = ”,是一个赋值运算符。前面int num在内存中为变量num分配了一个空间,赋值语句在那个地方为变量存储了一个值,为1;注意,赋值语句从右道左。
3.7 调用函数,
在函数里面可以调用头文件、其他文件里的、或者自己编写的函数。
3.8 return语句
return语句(返回语句)是程序的最后一个语句。带有返回值得C语言函数要使用return语句,该语句包括关键字return.
4 一个简单程序的结构


5、调试
你大概已经会编写一个基本C程序了,但是编写程序的时候往往一不小心就会出错。程序的错误通常称为bugs,而修正这正错误被称为调试。
6、关键字和保留标识符

如果你使用以上关键字作为你的变量名,编译器将会将它作为一个语法错误捕获到。
重学C语言---02C语言概述的更多相关文章
- 重学C语言---01概述
1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...
- 重学C语言
重学C语言 #include <stdio.h> int main() { ; ; printf("I am %d year old.\n",age); printf( ...
- 1164: 零起点学算法71——C语言合法标识符(存在问题)
1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec Memory Limit: 64 MB 64bit IO Format: %lldSubmitted: 10 ...
- go语言编译过程概述
go语言编译过程概述 总结自<go语言设计与实现> 名词解释: 中间代码 中间代码是编译器或者虚拟机使用的语言,它可以来帮助我们分析计算机程序.在编译过程中,编译器会在将源代码转换到机器码 ...
- 重学OpenGL(一)----工具篇
最近想开发一个小工具,需要用到3D,果断上OpenGL,借这个过程把OpenGL重学一遍. 工欲善其事,必先利其器,先把工具都搞好. [开发语言] 果断C+OpenGL,不解释. [开发环境] Min ...
- 重学C++ (1)
写在开头的话:这学期没有写太多的代码,终于把中英文两篇论文弄完了,趁着中间的空隙,想想找工作的处境.自己也定了自己的方向.不管学什么语言吧,每个语言都有自己的优势和使用的群体.只要自己是良马,终会有伯 ...
- 重学前端 --- Promise里的代码为什么比setTimeout先执行?
首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() ...
- 重学Java(一):与《Java编程思想》的不解之缘
说起来非常惭愧,我在 2008 年的时候就接触了 Java,但一直到现在(2018 年 10 月 10 日),基础知识依然非常薄弱.用一句话自嘲就是:十年 IT 老兵,Java 菜鸡一枚. 于是,我想 ...
- 重学js之JavaScript 面向对象的程序设计(创建对象)
注意: 本文章为 <重学js之JavaScript高级程序设计>系列第五章[JavaScript引用类型]. 关于<重学js之JavaScript高级程序设计>是重新回顾js基 ...
随机推荐
- JAVA多线程Thread VS Runnable详解
要求 必备知识 本文要求基本了解JAVA编程知识. 开发环境 windows 7/EditPlus 演示地址 源文件 进程与线程 进程是程序在处理机中的一次运行.一个进程既包括其所要执行的指令,也 ...
- MySQL Replication之主从切换
在生产环境中,我们的架构很多都是一主多从.比如一个主数据库服务器M,两个从数据库服务器S1,S2同时指向主数据库服务器M.当主服务器M因为意外情况宕机,需要将其中的一个从数据库服务器(假设选择S1)切 ...
- 后台线程(daemon)
概念 所谓后台线程,是指在程序运行的时候在后台提供一种通用服务的线程,并且这种线程并不属于程序中不可或缺的部分.因此,当所有的非后台线程结束时,程序也就终止了,同时会杀死进程中的所有后台线程. ...
- 复刻smartbits的国产网络测试工具minismb-网络连接数测试方法
复刻smartbits的网路性能测试工具MiniSMB,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和最 ...
- 我的MQ笔记
1.安装IBM MQ 1.1.安装先决条件: (1)WebSphere Eclipse Platform V3.01 (2)为Windows域用户配置WebSphere MQ用户 1.2.安装程 ...
- java sendmail
http://blog.csdn.net/Guerlei/article/details/53189522
- 页面出现Incorrect string以及数据库内容乱码
我在制作 (www.helpqy.com) 的时候遇到了页面报错Incorrect string的问题,我使用的是mysql,数据表中有很多中文内容,最后发现在安装mysql的时候需要选择defaul ...
- 创建自己的共用js库
直至昨晚为止,学习了一个多月的MVC与jQuery,从所做的练习中,发觉jQuery的代码也有跟C#语言一样可以重构,多页面有相同使用的方法函数,均可以放置于一个单独立的js文件或是自定义的js库中. ...
- Java多线程--JDK并发包(2)
Java多线程--JDK并发包(2) 线程池 在使用线程池后,创建线程变成了从线程池里获得空闲线程,关闭线程变成了将线程归坏给线程池. JDK有一套Executor框架,大概包括Executor.Ex ...
- A simple Gaussian elimination problem.(hdu4975)网络流+最大流
A simple Gaussian elimination problem. Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65 ...