从一个简单的C语言程序开始

#include <stdio.h>

/*这是一个简单的C语言程序*/   //注释
int main(void)
{
int num;
num = 1;
printf("This is a c program!\n");
printf("Number is %d\n", num);
return 0;
}

#include <stdio.h>,把stdio.h包含到当前程序,stdio.h是C编译器软件包的标准部分,用来键盘输入和屏幕输出

main()是一个函数名,main()函数是C程序的主入口,int表明main()函数返回一个整数,返回给操作系统,参数void表示main()不带任何参数

int和void是标准ANSIC定义的main()的一部分,如果使用ANSIC之前的编译器,要省略void

“{”,为函数体开始

int num;,为声明一个int(整型)类型的变量num,所有的变量都必须先声明才能使用

num = 1;,为赋值表达式语句,把值1赋给变量num

printf('This is a c program!');,调用printf()函数来打印This is a c program!这句话,“'This is a c program!'“为printf()函数的实际参数

printf('Number is %d', num);,也是调用printf()函数来打印,%d为占位符,作用为指明输出num值的位置

return 0;,在main()函数执行完后会返回一个值0,main()函数以return语句结束,如果main()函数中没有return语句,执行完函数后默认返回0

“}”,为函数体结束

可以看到,函数体中每条语句都以分号结尾,如果没有分号,编译器就会报错,如果编译器报错某行缺少分号,就检查上一行是否有分号结尾

程序运行结果:

声明多个变量

int a, b, c;
//也可以这样写
int a;
int b;
int c;

变量的命名

可以用小写字母、大写字母、数字和下划线(_)来命名,变量名称的第1个字符必须是字符或下划线,不能是数字。

C语言中的命名区分大小写,即把一个字母的大写和小写视为两个不同的字符。

操作系统和C库经常使用一个或两个下划线字符开始的标识符,所以尽量避免声明变量的时候使用这种名称。标准标签都以一个或两个下划线字符开始,如库标识符,这样的标识符都是保留的,命名的时候可能会重了,虽然没有语法错误,但是会导致名称冲突

多个函数

#include <stdio.h>

void Test(void);  //函数原型(函数声明)

int main(void)
{
printf("Before run the Test Function\n");
Test(); //函数调用
printf("After run the Test Function\n");
return 0;
} void Test(void) //函数定义
{
printf("This is the Test Function\n");
}

函数原型也称函数声明,它会告诉编译器在程序中要使用该函数,函数原型还指明了函数的属性,第1个void表示Test()函数没有返回值(通常被调用的函数会向主函数返回一个返回值),第2个void表示Test()函数不带参数

函数调用是在main()函数中调用Test()函数

最后的函数定义,是定义Test()函数本身的源代码

程序运行结果:

小结:

C程序由一个或多个C函数组成。

每个C程序必须包含一个main()函数,main()函数为C程序的主入口,是C程序第一个调用的函数

简单的函数由函数头和后面的一对花括号组成,花括号中是由声明、语句组成的函数体。

在C语言中,大部分语句都以分号结尾。

声明语句为变量指定变量名,并标识该变量中储存的数据类型,变量名是一种标识符。

赋值表达式语句把值赋给变量,即把值赋给存储空间。

函数表达式语句用于调用指定的已命名函数,调用函数执行完毕后,程序会返回到函数调用后面的语句继续执行。

printf()函数用于输出内容。

关键字是C语言的词汇。

复习题:

1.C语言的基本模块是什么?

答:函数

6.在main、int、function、char、=中,哪些是C语言的关键字?

答:int和char是C语言的关键字,main是一个函数名,function是函数的意思,=是一个运算符

C Primer Plus学习笔记(一)- C语言概述的更多相关文章

  1. C语言学习笔记01——C语言概述

    作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...

  2. java 学习笔记1 java语言概述及开发环境

    高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...

  3. C语言学习笔记一---C语言概述

    一.编程语言与解释语言 1.程序的执行 a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序 b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序 2.两者 ...

  4. C语言学习笔记---1.C语言概述

    1.典型C程序结构 2.C程序细节 2.1#include指令和头文件 #include这行代码是一条C预处理器指令(preprocessor directive).通常,C编译器在编译前会对源代码做 ...

  5. 23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy

    23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy 2016-07-18 (www.cnblogs.com/icmzn) 模式理解

  6. 23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade

    23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade 2016-07-22 (www.cnblogs.com/icmzn) 模式理解

  7. 23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory

    23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory 2016-07-18 (www.cnblogs.com/icmzn) 模式理解   1. Flyweight ...

  8. 23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite

    23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite 2016-07-22 (www.cnblogs.com/icmzn) 模式理解

  9. 23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter

    23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter 2016-07-22 (www.cnblogs.com/icmzn) 模式理解

  10. 23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge

    23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge 2016-07-22 (www.cnblogs.com/icmzn) 模式理解  

随机推荐

  1. 解析3级JSON的例子

    我们都知道现在Ajax盛行,而且前后台数据交流的格式已经换成了JSON了.虽然我对这种做法还是有点担忧的,如果用户关闭了JavaScript怎么办?但是这些担忧还是不能阻止Ajax的盛行和JSON数据 ...

  2. cplusplus.com

    1/ http://www.cplusplus.com/reference/map/multimap/find/ 2. C

  3. Springboot- Caused by: org.hibernate.AnnotationException: No identifier specified for entity:

    错误与异常: Caused by: org.hibernate.AnnotationException: No identifier specified for entity: 原因:引用了不对的包, ...

  4. 开发者必备,超实用的PHP代码片段!

    此前,研发频道曾发布<直接拿来用,10个PHP代码片段>,得到了网友们的一致好评.本文,笔者将继续分享九个超级有用的PHP代码片段.当你在开发网站.应用或者博客时,利用这些代码能为你节省大 ...

  5. javascript删除JSON元素

    首先要搞清JSON的数据格式,我这里所说的JSON都是指javascript中的. JSON数据是由对象和数组数据结构组成,我们只要学会javascript中对对象和数组的删除方法即可对JSON项进行 ...

  6. 使用<s:property value="4"/>是报错

    报错的情况是 在jsp中引入标签 <%@ taglib uri="/struts-tags" prefix="s" %> 项目中也有ognl.jar ...

  7. jspxcms笔记三

    首页 index.html site :站点对象栏目 cover.html list.html node :栏目对象, text :正文详细 info.html node :栏目对象, info :文 ...

  8. ie 元素兼容性总结

    css 属性元素 2.z-index 正常按自身层级决定显示顺序,在ie6 7 还需要依赖于父级的层级决定,排布在后边的元素排在前面.后来者居上覆盖前者. IE6,7支持inline元素转换成inli ...

  9. UML类图(一)-------概述+结构

    类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据.       1. 类       类(Class)封 ...

  10. mouseenter和hover的区别

    js中鼠标事件中,mouseenter和hover都可以达到,鼠标悬浮在目标上,触发事件,那么两者效果相同,有什么区别呢. 经过自己亲自试验.发现,mouseenter和hover还是有区别的. ho ...