重学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基 ...
随机推荐
- SpringSecurity学习之快速上手
互联网项目中,安全与权限控制是不可回避的问题,为了解决这一些列问题,许多安全框架应运而生了.这些框架旨在帮我们解决公用的安全问题,让我们的程序更加健壮,从而让程序员全身心投入到业务开发当中.那么Spr ...
- JavaScript -- Window-框架
-----025-Window-框架.html----- <!DOCTYPE html> <html> <head> <meta http-equiv=&qu ...
- EventProcessor与WorkPool用法--可处理多消费者
单一的生产者,消费者有多个,使用WorkerPool来管理多个消费者: RingBuffer在生产Sequencer中记录一个cursor,追踪生产者生产到的最新位置,通过WorkSequence和s ...
- MVC源码分析 - View续之Razor
过完年, 大家都忙碌起来了, 我也不例外. 不过并不是忙碌于去面试找工作, 而是忙碌于现在手上的工作. 闲话不多说了, 进入今天的主题. 一.Index页面在哪里 很奇怪, 在目录bin下面的dll文 ...
- 解决使用vue-cli生成项目后项目地址自动添加#号的问题
vue-router官网https://router.vuejs.org/zh/guide/ vue的路由在默认的hash模式下,url会带有一个#,不美观,而且在微信分享,授权登录等都会有一些坑.所 ...
- Java Web 项目简单配置 Spring MVC进行访问
所需要的 jar 包下载地址: https://download.csdn.net/download/qq_35318576/10275163 配置一: 新建 springmvc.xml 并编辑如下内 ...
- [转]Magento2开发教程 - 如何向数据库添加新表
本文转自:https://www.cnblogs.com/xz-src/p/6920365.html Magento 2具有特殊的机制,允许你创建数据库表,修改现有的,甚至添加一些数据到他们(如安装数 ...
- iOS不同网络情况调试
有时我们需要对app进行不同网络状况的测试,这时我们可以用到iPhone中的开发者功能进行测试. 按照下图所示打开网络调试功能: 可以看到系统默认配置的网络条件还 ...
- 如何监听对 HIVE 元数据的操作
目录 简介 HIVE 基本操作 获取 HIVE 源码 编译 HIVE 源码 启动 HIVE 停止 HIVE 监听对 HIVE 元数据的操作 参考文档 简介 公司有个元数据管理平台,会定期同步 HIVE ...
- Hanoi问题 算法
问题描述:假设有3个分别命名为A.B.C的塔座,在塔座A上插有n个直径大小各不同,一小到大标号为1,2,….,n的圆盘,要求将塔座A上的n个圆盘移动到C盘上,并且仍按原来的顺序叠排. 同时遵循下列规则 ...