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语言概述的更多相关文章

  1. 重学C语言---01概述

    1.什么是C语言 C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点.计算机语言是从第二次世界大战以后,经历了戏剧性的发展过程.从机器语言到汇编语言和高级语言.C语言是与硬件 ...

  2. 重学C语言

    重学C语言 #include <stdio.h> int main() { ; ; printf("I am %d year old.\n",age); printf( ...

  3. 1164: 零起点学算法71——C语言合法标识符(存在问题)

    1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 10 ...

  4. go语言编译过程概述

    go语言编译过程概述 总结自<go语言设计与实现> 名词解释: 中间代码 中间代码是编译器或者虚拟机使用的语言,它可以来帮助我们分析计算机程序.在编译过程中,编译器会在将源代码转换到机器码 ...

  5. 重学OpenGL(一)----工具篇

    最近想开发一个小工具,需要用到3D,果断上OpenGL,借这个过程把OpenGL重学一遍. 工欲善其事,必先利其器,先把工具都搞好. [开发语言] 果断C+OpenGL,不解释. [开发环境] Min ...

  6. 重学C++ (1)

    写在开头的话:这学期没有写太多的代码,终于把中英文两篇论文弄完了,趁着中间的空隙,想想找工作的处境.自己也定了自己的方向.不管学什么语言吧,每个语言都有自己的优势和使用的群体.只要自己是良马,终会有伯 ...

  7. 重学前端 --- Promise里的代码为什么比setTimeout先执行?

    首先通过一段代码进入讨论的主题 var r = new Promise(function(resolve, reject){ console.log("a"); resolve() ...

  8. 重学Java(一):与《Java编程思想》的不解之缘

    说起来非常惭愧,我在 2008 年的时候就接触了 Java,但一直到现在(2018 年 10 月 10 日),基础知识依然非常薄弱.用一句话自嘲就是:十年 IT 老兵,Java 菜鸡一枚. 于是,我想 ...

  9. 重学js之JavaScript 面向对象的程序设计(创建对象)

    注意: 本文章为 <重学js之JavaScript高级程序设计>系列第五章[JavaScript引用类型]. 关于<重学js之JavaScript高级程序设计>是重新回顾js基 ...

随机推荐

  1. typedef在C和C++的区别?

    一.struct定义结构体1.先声明结构体类型再定义变量名struct name{ member ..};name A;... 如:struct student{ int a;};student st ...

  2. Java多线程同步集合--并发库高级应用

    一.阻塞队列1.在多线程领域,所谓阻塞,在某些情况下会挂起线程,一旦条件满足,被挂起的线程又会自动被唤醒2.ArrayBlockingQueue(效率高)和LinkedBlockingQueue是两个 ...

  3. 当语音识别搭配AI之后,我的语音助手更懂我的心了

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云AI中心发表于云+社区专栏 我今天演讲主要分四个部分,第一个是分享语音识别概述,然后是深度神经网络的基础:接下来就是深度学习在语 ...

  4. Hibernate关联关系映射之一对多双向映射

    一对多映射有两种,一种是单向的,另一种的多向.我们一般是使用双向的,所以我就写写一对多的双向映射. 还是想昨天一样举个例子来说明:作者<===>作品,还是对数据进行增删改查. 我们一般是把 ...

  5. mongorestore 一次踩雷

    1.在做mongodb备份后,研发突然有个需求说先看一下昨天备份里面的数据,进行一下核实.因为那部分数据今天已经删除,由于使用---gzip.--archive做的备份,所以必须导入到同名的数据库里面 ...

  6. POJ 2785 4 Values whose Sum is 0(暴力枚举的优化策略)

    题目链接: https://cn.vjudge.net/problem/POJ-2785 The SUM problem can be formulated as follows: given fou ...

  7. 传统项目转前端工程化——路由跳转时出现浏览器锁死和白屏【该死的同步ajax】

    [一开始我想到是该死的同步ajax,但我没验证,把他忽略了] 在探索前端工程化vue-cli做spa时,从搜索结果页跳转商品详情页时,因为详情页有很多ajax请求,并且都用的同步请求,就会导致请求时浏 ...

  8. [日常] Go语言圣经--接口约定习题

    Go语言圣经-接口1.接口类型是对其它类型行为的抽象和概括2.Go语言中接口类型的独特之处在于它是满足隐式实现的3.Go语言中还存在着另外一种类型:接口类型.接口类型是一种抽象的类型4.一个类型可以自 ...

  9. 【Mysql】可视化工具

    一.navicat 破解方法:http://www.jianshu.com/p/b1f9194e1e31 二. MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建 ...

  10. Netty中消除开始的日志消息修改日志级别

    我是使用logback作为日志打印,之前使用slf4j,日志打印不出,就干脆换掉了. 1.首先引入依赖 <dependency> <groupId>ch.qos.logback ...