重学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基 ...
随机推荐
- GitLab 修改主机名,更换 IP 配置,配置 SMTP
# find / -name gitlab.yml /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml /var/opt/gitla ...
- 测试驱动开发 - Test-Driven Development
TDD 开发模式流程: 编写测试用例 -> 运行测试用例 –> 编写项目代码 -> 运行测试用例 -> 重构代码 优点: 1.TDD 开发中加入了回归测试,这样就确保了之前的功 ...
- JavaScript -- Window-Scroll
-----037-Window-Scroll.html----- <!DOCTYPE html> <html> <head> <meta http-equiv ...
- 05 - JavaSE之数组
一维数组 java中的数组是引用类型,分配在堆空间上. 一维数组的声明方式: type var[]; type[] var; java中声明数组时不能指定其长度,如下,因为java中的数组是分配在堆空 ...
- 图片按日期分类和查看程序(WPF开发)(附源码)
手机方便了我们的生活,可以随时随地拍摄.越来越多的图片堆砌在电脑里.看到杂乱无章的图片,实在感到头痛.手动整理太复杂.基于此,我写了一个小程序,可以将图片按日期整理和查看.按日期查看图片,回忆过去的点 ...
- Git和Gitlab协同工作
1.概述 在写这篇博客之前,为了更好的描述整个流程,本人亲自尝试了:从搭建到使用,下面就围绕这个流程来阐述整个过程,目录结构如下所示: Git的安装搭建 Git的常规操作 Gitlab的搭建 Gitl ...
- 复刻smartbits的国产网络测试工具minismb-操作技巧
复刻smartbits的国产网络性能测试工具smartbits,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连 ...
- ActiveMQ P2P版的HelloWorld
1.2 JMS应用程序接口 ConnectionFactory: 用户用来创建到JMS提供者的连接的被管对象.JMS客户通过可移植的接口访问连接,这样当下层的实现改变时,代码不需要进行修改. 管理员 ...
- jQuery中的函数汇总1
欢迎访问我的github:huanshen,有我的源码解析 1.each 跟for循环很像,但是更有用,如果你理解了就知道了. // 遍历一个数组或者对象 // obj 是需要遍历的数组或者对象 // ...
- #if _MSC_VER > 1000 #pragma once #endif 含义
前提:MFC应用程序中,MainFrm 类头文件 MainFrm.h 中#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000解释 ...