从一个简单的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. P3391 文艺平衡树

    hh 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 ...

  2. 使用Homebrew管理你的mac开发包

    很多人可能不了解 Homebrew, 其实它相当于开发软件界的 Appstore. 比如,如果我要安装 python 的最新版本,那么传统的做法是 1. 到官方网站下载 python 的最新版本 2. ...

  3. java:jsp: ResourceBundle国际化多语言

    java提供了一个资源类java.util.ResourceBundle来试下多国语言版本.其实ResourceBundle只是一个抽象的类,她有两个子类:ListResourceBundle,和,P ...

  4. 抓包tcpdump

      tcpdump是基于Unix系统的命令行式的数据包嗅探工具 tcpdump  可以监测真机或者模拟器 2g/3g/wifi下数据流动,前提手机必须root过. fillder也可以检测客户端数据包 ...

  5. LSTM与Highway-LSTM算法实现的研究概述

    LSTM与Highway-LSTM算法实现的研究概述 zoerywzhou@gmail.com http://www.cnblogs.com/swje/ 作者:Zhouwan  2015-12-22 ...

  6. Java tutorial 02

    一.EnumTest.java枚举类型 public class EnumTest { public static void main(String[] args) { Size s=Size.SMA ...

  7. 20165210 预习作业3 Linux安装及学习

    Linux安装及学习 一.Linux安装 通过参考教程:基于VirtualBox虚拟机安装Ubuntu图文教程成功的安装上了Linux但在过程中还是有一些小问题的. 首先按着步骤走,一开始没什么毛病, ...

  8. Redis-简单动态字符串

    这是读redis设计与实现的一系列读书笔记 1.SDS定义 C语言字符串:用一个 \0 结尾的 char 数组来表示 SDS:redis自己定义的简单动态字符串(simple dyanmic stri ...

  9. CANopenNode drvTemplate/CO_driver.h hacking

    /************************************************************************ * CANopenNode drvTemplate/ ...

  10. python lambda 用途

    可以让一个带参数函数,传递并以无参调用 def test(a): print a a=test # #a() a=897987 fun=lambda : test(a) fun()