C语言教程
C语言是一种电脑程式设计语言。
C语言对作业系统和系统使用程式以及需要对硬体进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型套用软体也是用C语言编写的。一、概述 上 下 二、变数和常量 三、运算符 四、表达式和语句 五、编写第一个C语言程式 六、条件语句 七、循环语句和循环控制 八、数组 九、多维数组 十、函式的定义和调用 十一、函式参数的传递和值返回 十二、变数的作用域和存储类型 十三、函式递归 十四、预处理过程 十五、指针概念 十六、数组和指针 十七、指针函式和函式指针 十八、结构体 十九、联合和枚举 二十、堆和鍊表 二十一、位操作 二十二、档案操作基本常识 二十三、档案操作
基本介绍
- 中文名:C语言0基础入门
- 外文名:Basic Combind Programming Language
- 大小:9.4MB
- 版本:4.6.0
- 下载次数:1643
- 来自:91助手
- 性质:安全、无广告
套用介绍
C语言0基础入门介绍C语言的基础知识和关于C语言的编程技巧,对C语言程式开发中套用的各种函式按照功能、语法进行介绍,同时还有关于部分C语言实例编程,各种类型应有尽有,是学习C语言必备工具。想要成为编程高手,那就来下载C语言0基础入门呗!绝对让你变成IT高手!
C语言教程
一、概述 上 下
二、变数和常量
三、运算符
四、表达式和语句
五、编写第一个C语言程式
六、条件语句
七、循环语句和循环控制
八、数组
九、多维数组
十、函式的定义和调用
十一、函式参数的传递和值返回
十二、变数的作用域和存储类型
十三、函式递归 十四、预处理过程
十五、指针概念
十六、数组和指针
十七、指针函式和函式指针
十八、结构体
十九、联合和枚举
二十、堆和鍊表
二十一、位操作
二十二、档案操作基本常识
二十三、档案操作 查看全部
编译环境设定好以后,就可以正式学习C语言了。
一、变数
(一)、变数类型和表示方法
1.什幺是变数?一句话,变数是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字元等等,那幺对应的变数就有整型变数、浮点型变 量、字元型变数。变数还有其他的具体分类。整型变数还可具体分为无符号型、长整型和短整型。浮点型也可分为单精度型、双精度型和长双精度型。此外还可以分 为静态变数、外部变数、暂存器变数和自动存储变数。这些数据类型我们在本节和后面的章节中都会陆陆续续介绍。
那幺变数我们总要给它取个名字吧,这个名字我们叫做标识符。
标识符的命名有一定的规则:
(1).标识符只能由字母、数字和下划线三类字元组成
(2).第一个字元必须是字母(第一个字元也可以是下划线,但被视作系统自定义的标识符)
(3).大写字母和小写字母被认为是两个不同的字元,如A和a是两个不同的标识符
(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于连结程式的限制所总成的,而不是C语言本身的局限性
(5).标识符不能是C的关键字
2.从上面的规则中,有个关键字的概念。那幺什幺叫关键字呢?
从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。
下面列出ANSI标準定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
signed sizeof static struct switch typedef
union unsigned void volatile while
C语言还包括一些不能用做标识符的扩展关键字。
asm cdecl _cs _ds _es far
huge interrupt near pascal _ss
所以在以后的学习中,在给变数命名时要避开这些关键字。
3. Turbo C2.0规定所有变数在使用前都必须加以说明。一条变数说明语句由数据类型和其后的一个或多个变数名组成。变数说明的形式如下:
类型 <变数表>;
这里类型是指Turbo C2.0的有效数据类型。变数表是一个或多个标识符名,每个标识符之间用,分隔。
(二)、整型变数
整型变数是用来存储整数的。
整型变数又可具体分为好几种,最基本的整型变数是用类型说明符int声明的符号整型,形式如下:
int Counter;
这里int是类型说明符,Counter是变数的名字。
整型变数可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。
整型是16位的,长整型是32位,短整型等价于整型。
以下是几种整型变数的声明示例:
long int Amount; /*长整型*/
long Amount; /*长整型,等价于上面*/
signed int Total; /*有符号整型*/
signed Total; /*有符号整型,等价于上面*/
unsigned int Offset; /*无符号整型*/
unsigned Offset; /*无符号整型,等价于上面*/
short int SmallAmt; /*短整型*/
short SmallAmt; /*短整型,等价于上面*/
unsigned short int Month; /*无符号短整型*/
unsigned short Month; /*无符号短整型,等价于上面*/
从上面的示例可以看出,当定义长整型、短整型、符号整型或无符号整型时,可以省略关键字int。
注明:
1.用signed对整型变数进行有符号指定是多余的,因为除非用unsigned指定为无符号型,否则整型都是有符号的。
2.当一个变数有几重特性时,声明关键字的顺序可以任意。以下几种声明是等价的:
unsigned long T1;
long unsigned T2;
unsigned long int T3;
unsigned int long T4;
long unsigned int T5;
long int unsigned T6;
int unsigned long T7;
int long unsigned T8;
(三)、浮点类型变数
顾名思义,浮点类型变数是用来存储带有小数的实数的。
C语言中有三种不同的浮点类型,以下是对这三种不同类型的声明示例:
float Amount; /*单精度型*/
double BigAmount; /*双精度型*/
long double ReallyBigAmount; /*长双精度型*/
这里Amount,BigAmount,ReallyBigAmount都是变数名。
浮点型都是有符号的。
(四)、字元型变数
字元型变数中所存放的字元是计算机字元集中的字元。对于PC机上运行的C系统,字元型数据用8位单位元组的ASCII码錶示。程式用类型说明符char来声明字元型变数:
char ch;
这条声明语句声明了一个字元型变数,标识符为ch。当以这种形式声明变数之后,程式可以在表达式中引用这个变数,关于语句和表达式的知识在后面将会介绍。
字元数据类型事实上是8位的整型数据类型,可以用于数值表达式中,与其他的整型数据同样使用。在这种情况下,字元型变数可以是有符号的,也可以是无符号的。对于无符号的字元型变数可以声明为:
unsigned char ch;
除非声明为无符号型,否则在算术运算和比较运算中,字元型变数一般作为8位有符号整型变数处理。
还有其他的如指针型变数,void型变数,以后再介绍。
一、概述 上 下
二、变数和常量
三、运算符
四、表达式和语句
五、编写第一个C语言程式
六、条件语句
七、循环语句和循环控制
八、数组
九、多维数组
十、函式的定义和调用
十一、函式参数的传递和值返回
十二、变数的作用域和存储类型
十三、函式递归 十四、预处理过程
十五、指针概念
十六、数组和指针
十七、指针函式和函式指针
十八、结构体
十九、联合和枚举
二十、堆和鍊表
二十一、位操作
二十二、档案操作基本常识
二十三、档案操作 查看全部
编译环境设定好以后,就可以正式学习C语言了。
一、变数
(一)、变数类型和表示方法
1.什幺是变数?一句话,变数是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字元等等,那幺对应的变数就有整型变数、浮点型变 量、字元型变数。变数还有其他的具体分类。整型变数还可具体分为无符号型、长整型和短整型。浮点型也可分为单精度型、双精度型和长双精度型。此外还可以分 为静态变数、外部变数、暂存器变数和自动存储变数。这些数据类型我们在本节和后面的章节中都会陆陆续续介绍。
那幺变数我们总要给它取个名字吧,这个名字我们叫做标识符。
标识符的命名有一定的规则:
(1).标识符只能由字母、数字和下划线三类字元组成
(2).第一个字元必须是字母(第一个字元也可以是下划线,但被视作系统自定义的标识符)
(3).大写字母和小写字母被认为是两个不同的字元,如A和a是两个不同的标识符
(4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于连结程式的限制所总成的,而不是C语言本身的局限性
(5).标识符不能是C的关键字
2.从上面的规则中,有个关键字的概念。那幺什幺叫关键字呢?
从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。
下面列出ANSI标準定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
signed sizeof static struct switch typedef
union unsigned void volatile while
C语言还包括一些不能用做标识符的扩展关键字。
asm cdecl _cs _ds _es far
huge interrupt near pascal _ss
所以在以后的学习中,在给变数命名时要避开这些关键字。
3. Turbo C2.0规定所有变数在使用前都必须加以说明。一条变数说明语句由数据类型和其后的一个或多个变数名组成。变数说明的形式如下:
类型 <变数表>;
这里类型是指Turbo C2.0的有效数据类型。变数表是一个或多个标识符名,每个标识符之间用,分隔。
(二)、整型变数
整型变数是用来存储整数的。
整型变数又可具体分为好几种,最基本的整型变数是用类型说明符int声明的符号整型,形式如下:
int Counter;
这里int是类型说明符,Counter是变数的名字。
整型变数可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。
整型是16位的,长整型是32位,短整型等价于整型。
以下是几种整型变数的声明示例:
long int Amount; /*长整型*/
long Amount; /*长整型,等价于上面*/
signed int Total; /*有符号整型*/
signed Total; /*有符号整型,等价于上面*/
unsigned int Offset; /*无符号整型*/
unsigned Offset; /*无符号整型,等价于上面*/
short int SmallAmt; /*短整型*/
short SmallAmt; /*短整型,等价于上面*/
unsigned short int Month; /*无符号短整型*/
unsigned short Month; /*无符号短整型,等价于上面*/
从上面的示例可以看出,当定义长整型、短整型、符号整型或无符号整型时,可以省略关键字int。
注明:
1.用signed对整型变数进行有符号指定是多余的,因为除非用unsigned指定为无符号型,否则整型都是有符号的。
2.当一个变数有几重特性时,声明关键字的顺序可以任意。以下几种声明是等价的:
unsigned long T1;
long unsigned T2;
unsigned long int T3;
unsigned int long T4;
long unsigned int T5;
long int unsigned T6;
int unsigned long T7;
int long unsigned T8;
(三)、浮点类型变数
顾名思义,浮点类型变数是用来存储带有小数的实数的。
C语言中有三种不同的浮点类型,以下是对这三种不同类型的声明示例:
float Amount; /*单精度型*/
double BigAmount; /*双精度型*/
long double ReallyBigAmount; /*长双精度型*/
这里Amount,BigAmount,ReallyBigAmount都是变数名。
浮点型都是有符号的。
(四)、字元型变数
字元型变数中所存放的字元是计算机字元集中的字元。对于PC机上运行的C系统,字元型数据用8位单位元组的ASCII码錶示。程式用类型说明符char来声明字元型变数:
char ch;
这条声明语句声明了一个字元型变数,标识符为ch。当以这种形式声明变数之后,程式可以在表达式中引用这个变数,关于语句和表达式的知识在后面将会介绍。
字元数据类型事实上是8位的整型数据类型,可以用于数值表达式中,与其他的整型数据同样使用。在这种情况下,字元型变数可以是有符号的,也可以是无符号的。对于无符号的字元型变数可以声明为:
unsigned char ch;
除非声明为无符号型,否则在算术运算和比较运算中,字元型变数一般作为8位有符号整型变数处理。
还有其他的如指针型变数,void型变数,以后再介绍。
二、常量
常量的意思就是不可改变的量,是一个常数。同变数一样,常量也分为整型常量、浮点型常量、字元型常量,还有字元串常量、转义字元常量和地址常量。
(一)、整型常量
整型常量可以是长整型、短整型、有符号型、无符号型。在Tubbo C 2.0里有符号整型常量的範围从-32768到32767,无符号整型的为0到65535;有符号长整型的範围为-2147483648到 2147483647。无符号长整型的範围为0到4294967295。短整型同字元型。
可以指定一个整型常量为二进制、八进制或十六进制,如以下语句:
-129, 0x12fe, 0177
常量的前面有符号0x,这个符号表示该常量是十六进制表示。如果前面的符号只有一个字母0,那幺表示该常量是八进制。
有时我们在常量的后面加上符号L或者U,来表示该常量是长整型或者无符号整型:
22388L, 0x4efb2L, 40000U
后缀可以是大写,也可以是小写。
(二)、浮点型常量
一个浮点型常量由整数和小数两部分构成,中间用十进制的小数点隔开。有些浮点树非常大或者非常小,用普通方法不容易表示,可以用科学计数法或者指数方法表示。下面是一个实例:
3.1416, 1.234E-30, 2.47E201
注意在C语言中,数的大小也有一定的限制。对于float型浮点数,数的表示範围为-3.402823E38到3.402823E38,其中 -1.401298E-45到1.401298E-45不可见。double型浮点型常数的表示範围为-1.79E308到1.79E308,其中 -4.94E-324到4.94E-324不可见。
在浮点型常量里我们也可以加上后缀。
FloatNumber=1.6E10F; /*有符号浮点型*/
LongDoubleNumber=3.45L; /*长双精度型*/
后缀可大写也可小写。
说明:
1. 浮点常数只有一种进制(十进制)。
2. 所有浮点常数都被默认为double。
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22, -0.0015E-3可写为-.0015E-3。
4. Turbo C默认格式输出浮点数时, 最多只保留小数点后六位
(三)、字元型常量
字元型常量所表示的值是字元型变数所能包含的值。我们可以用ASCII表达式来表示一个字元型常量,或者用单引号内加反斜槓表示转义字元。
'A', '\x2f', '\013';
其中:\x表示后面的字元是十六进制数,\0表示后面的字元是八进制数。
注意:在Turbo C 2.0中,字元型常量表示数的範围是-128到127,除非你把它声明为unsigned,这样就是0到255。
(四)、字元串常量
字元串常量就是一串字元,用双引号括起来表示。
Hello,World!
\nEnter selection:
\aError!!!
(五)、转义字元
上面我们见到的\x,\n,\a等等都是叫转义字元,它告诉编译器需要用特殊的方式进行处理。下面给出所有的转义字元和所对应的意义:
转义字元 描述
\' 单引号
\ 双引号
\\ 反斜槓
\0 空字元
\0nnn 八进制数
\a 声音符
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
\x 十六进制符
它们的具体用法我们到讲输出语句时再介绍。
(六)、地址常量
我们前面说的变数是存储数据的空间,它们在记忆体里都有对应的地址。在C语言里可以用地址常量来引用这些地址,如下:
&Counter, ∑
&是取地址符,作用是取出变数(或者函式)的地址。在后面的输入语句和指针里还会说明。
这一节所讲到的变数和常量知识可以说是在一切程式中都要用到,特别是变数的声明和命名规则。
常量的意思就是不可改变的量,是一个常数。同变数一样,常量也分为整型常量、浮点型常量、字元型常量,还有字元串常量、转义字元常量和地址常量。
(一)、整型常量
整型常量可以是长整型、短整型、有符号型、无符号型。在Tubbo C 2.0里有符号整型常量的範围从-32768到32767,无符号整型的为0到65535;有符号长整型的範围为-2147483648到 2147483647。无符号长整型的範围为0到4294967295。短整型同字元型。
可以指定一个整型常量为二进制、八进制或十六进制,如以下语句:
-129, 0x12fe, 0177
常量的前面有符号0x,这个符号表示该常量是十六进制表示。如果前面的符号只有一个字母0,那幺表示该常量是八进制。
有时我们在常量的后面加上符号L或者U,来表示该常量是长整型或者无符号整型:
22388L, 0x4efb2L, 40000U
后缀可以是大写,也可以是小写。
(二)、浮点型常量
一个浮点型常量由整数和小数两部分构成,中间用十进制的小数点隔开。有些浮点树非常大或者非常小,用普通方法不容易表示,可以用科学计数法或者指数方法表示。下面是一个实例:
3.1416, 1.234E-30, 2.47E201
注意在C语言中,数的大小也有一定的限制。对于float型浮点数,数的表示範围为-3.402823E38到3.402823E38,其中 -1.401298E-45到1.401298E-45不可见。double型浮点型常数的表示範围为-1.79E308到1.79E308,其中 -4.94E-324到4.94E-324不可见。
在浮点型常量里我们也可以加上后缀。
FloatNumber=1.6E10F; /*有符号浮点型*/
LongDoubleNumber=3.45L; /*长双精度型*/
后缀可大写也可小写。
说明:
1. 浮点常数只有一种进制(十进制)。
2. 所有浮点常数都被默认为double。
3. 绝对值小于1的浮点数, 其小数点前面的零可以省略。如:0.22可写为.22, -0.0015E-3可写为-.0015E-3。
4. Turbo C默认格式输出浮点数时, 最多只保留小数点后六位
(三)、字元型常量
字元型常量所表示的值是字元型变数所能包含的值。我们可以用ASCII表达式来表示一个字元型常量,或者用单引号内加反斜槓表示转义字元。
'A', '\x2f', '\013';
其中:\x表示后面的字元是十六进制数,\0表示后面的字元是八进制数。
注意:在Turbo C 2.0中,字元型常量表示数的範围是-128到127,除非你把它声明为unsigned,这样就是0到255。
(四)、字元串常量
字元串常量就是一串字元,用双引号括起来表示。
Hello,World!
\nEnter selection:
\aError!!!
(五)、转义字元
上面我们见到的\x,\n,\a等等都是叫转义字元,它告诉编译器需要用特殊的方式进行处理。下面给出所有的转义字元和所对应的意义:
转义字元 描述
\' 单引号
\ 双引号
\\ 反斜槓
\0 空字元
\0nnn 八进制数
\a 声音符
\b 退格符
\f 换页符
\n 换行符
\r 回车符
\t 水平制表符
\v 垂直制表符
\x 十六进制符
它们的具体用法我们到讲输出语句时再介绍。
(六)、地址常量
我们前面说的变数是存储数据的空间,它们在记忆体里都有对应的地址。在C语言里可以用地址常量来引用这些地址,如下:
&Counter, ∑
&是取地址符,作用是取出变数(或者函式)的地址。在后面的输入语句和指针里还会说明。
这一节所讲到的变数和常量知识可以说是在一切程式中都要用到,特别是变数的声明和命名规则。