重学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基 ...
随机推荐
- CentOS 6.7 下 MYSQL 5.7 的安装与配置
安装 #yum源 http://dev.mysql.com/downloads/repo/yum/ #安装 rpm -Uvh http://dev.mysql.com/get/mysql57-comm ...
- RocketMq(二)消息中间件源码下载、模块分化以及集群模式的认知
1.通过IDEA使用git下载源码 到RocketMq官网指定的GitHub路径获取下载链接 https://github.com/apache/rocketmq 获取下载源码路径 使用IDEA自带的 ...
- 编写自己的SpringBoot-starter
前言 我们都知道可以使用SpringBoot快速的开发基于Spring框架的项目.由于围绕SpringBoot存在很多开箱即用的Starter依赖,使得我们在开发业务代码时能够非常方便的.不需要过多关 ...
- ES6基础教程一 学习笔记
一.变量的声明 1.var 声明全局变量 在ES6中var用来声明全局变量. 2.let 声明局部变量 3.const 声明常量 二.变量的解构赋值 //1.数组赋值 let [a,b,c]=[1,2 ...
- CentOS 6.5 网络服务器功能的实现①:运用bind搭建基本的DNS服务器
何谓DNS服务?简而言之,DNS服务在互联网中可以实现域名解析(把域名转换成网络可以识别的IP地址). 名词解释①:正向解析:域名解析IP地址:反向解析:IP地址解析域名. DNS服务的正/反向区域解 ...
- java工具类-日期工具类
1.获得时间戳 为了统一其他语言的如php和unix系统获取的时间戳是10位长度的,精确到秒. java时间戳长度是13位,精确到毫秒 我们获取时间戳需要相应处理. //获取当前时间戳,除以1000, ...
- logstash-3-输出到es中
之前测试 filebeat和logstash的时候, 使用的是stdout标准输出, 现在我们想把数据输出到es中去, 1, 首先需要一个es: 修改配置文件 后台启动 ./bin/elasticse ...
- docker(一)
一.docker 概述 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 linux 机器上,也可以实现虚拟化.容器是完全使用沙箱 ...
- SpringBoot入门 (八) Cache使用
本文记录学习在SpringBoot中使用Cache. 一 为什么要使用缓存 缓存是一个数据交换的缓冲区,在一些条件下可以替代数据库.举个例子:我们有一个查询的业务,访问数据的频率特别高,且每次访问时的 ...
- 【区块链Go语言实现】Part 1:区块链基本原型
0x00 介绍 区块链(Blockchain)是21世纪最具革命性的技术之一,目前它仍处于逐渐成熟阶段,且其发展潜力尚未被完全意识到.从本质上讲,区块链只是一种记录的分布式数据库.但它之所以独特,是因 ...