C Primer Plus学习笔记(一)- C语言概述
从一个简单的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语言概述的更多相关文章
- C语言学习笔记01——C语言概述
作者:Eventi 出处:http://www.cnblogs.com/Eventi 欢迎转载,也请保留这段声明.谢谢! 1 C语言的起源 1972年,贝尔实验室的丹尼斯·里奇(Dennis Ritc ...
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- C语言学习笔记一---C语言概述
一.编程语言与解释语言 1.程序的执行 a.解释:借助一个能试图理解程序的程序,使计算机按要求执行你自己写的程序 b.编译:将所写程序翻译为机器语言写的程序,使计算机按要求执行你自己写的程序 2.两者 ...
- C语言学习笔记---1.C语言概述
1.典型C程序结构 2.C程序细节 2.1#include指令和头文件 #include这行代码是一条C预处理器指令(preprocessor directive).通常,C编译器在编译前会对源代码做 ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy
23 DesignPatterns学习笔记:C++语言实现 --- 2.7 Proxy 2016-07-18 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade
23 DesignPatterns学习笔记:C++语言实现 --- 2.6 Facade 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory
23 DesignPatterns学习笔记:C++语言实现 --- 2.5 Factory 2016-07-18 (www.cnblogs.com/icmzn) 模式理解 1. Flyweight ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite
23 DesignPatterns学习笔记:C++语言实现 --- 2.4 Composite 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter
23 DesignPatterns学习笔记:C++语言实现 --- 2.2 Adapter 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
- 23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge
23 DesignPatterns学习笔记:C++语言实现 --- 2.1 Bridge 2016-07-22 (www.cnblogs.com/icmzn) 模式理解
随机推荐
- C#中的转义字符verbatim string
In a verbatim string (a string starting with @"") to escape double quotes you use double q ...
- Fatal error: cannot create 'R_TempDir'
[user@mgmt dir]$ R Fatal error: cannot create 'R_TempDir' [user@mgmt dir]$ ll -ad /tmp drwxrwxrwt. 2 ...
- 泛型学习第一天:List与IList的区别 (一)
先看代码: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace L ...
- hdoj1006--Tick and Tick
Problem Description The three hands of the clock are rotating every second and meeting each other ma ...
- djang-分页
分页 views from django.shortcuts import render,HttpResponse # Create your views here. from app01.model ...
- 红米1S.线刷
ZC:遇到问题:“Missmatching image and device”,解决网址:“[2.23][史上最全]MiFlash线刷错误的那些事儿_收藏备用_小米手机4_MIUI论坛.html”(h ...
- nova Evacuate
作用:当一个 node down 掉后,在新的 node 上根据其 DB 中保存的信息重新 build down node 上虚机.这个往往在虚机 HA 方案中用到.它尽可能地将原来的虚机在新的主机上 ...
- 如何在windows上部署war包到tomcat服务器
一. 什么是war包 WAR(Web Archive file)网络应用程序文件,是与平台无关的文件格式,它允许将很多文件组合成一个压缩文件.war专用在web方面,一个war包可以理解为一个web项 ...
- hdu4217splay
题意:有1到n的数组,每次删除第k小的值,并求和 题解:splay基本操作,删除+合并 坑点:由于不会c++指针操作,sb的只删除了头指针导致一直mle #include<bits/stdc++ ...
- PHP中获取文件扩展名的N种方法
PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法:function get_extension($file){substr(strrchr($file, '.'), ...