从一个简单的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. Elasticsearch-->Get Started-->Basic concepts

    https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-concepts.html There ...

  2. html页面转JSP之后样式变化的问题

    html 保存为jsp   样式变化了  ,比如里面的一些input 获知是其他的一些样式变化的. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

  3. HIVE 配置文件详解

    hive的配置: hive.ddl.output.format:hive的ddl语句的输出格式,默认是text,纯文本,还有json格式,这个是0.90以后才出的新配置: hive.exec.scri ...

  4. SPOJ1825 FTOUR2 - Free tour II

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...

  5. 更改自己iCloud的地区

    百度一大堆都是过时的,而且没有用,通过google后发现google+里有一个文章https://plus.google.com/+%E5%90%B4%E5%BF%97%E5%8B%8776/post ...

  6. JDBC批量插入blob数据

    图片从接口读取后是base64的字符串,所以转成byte数组进行保存. 我们一般保存数据的话,都是基本数据,对于这些图片数据大部分会将图片保存成Blob,Clob等. Blob存储的是二进制对象数据( ...

  7. winform里面的label怎么样实现,字上删除的效果

    label属性里的Font方法理由 Strikeout 选成True 就行了 button1_Click(object sender, EventArgs e) { Graphics g = Grap ...

  8. JetBrains 系列软件

    JetBrains http://www.jetbrains.com/ 工具的路径也下载页面与下面第一个的idea类似,支持mac和windows平台的也都支持Linux平台. IntelliJ ID ...

  9. 太深了,梯度传不下去,于是有了highway。 干脆连highway的参数都不要,直接变残差,于是有了ResNet。 强行稳定参数的均值和方差,于是有了BatchNorm。RNN梯度不稳定,于是加几个通路和门控,于是有了LSTM。 LSTM简化一下,有了GRU。

    请简述神经网络的发展史sigmoid会饱和,造成梯度消失.于是有了ReLU.ReLU负半轴是死区,造成梯度变0.于是有了LeakyReLU,PReLU.强调梯度和权值分布的稳定性,由此有了ELU,以及 ...

  10. 三目运算符与if else的运行效率

    两者的效率比较: 当比较次数较少时,效率一样: 当比较次数较多时,发现ifelse的速度更快,应该是其汇编指令更少的原因.   if else的汇编代码如下:     三目运算符代码如下: