没有合适的资源?快使用搜索试试~ 我知道了~
(完整)C语言基础知识大全-推荐文档.pdf
需积分: 10 1 下载量 89 浏览量
2022-10-24
01:45:10
上传
评论
收藏 373KB PDF 举报
温馨提示
试读
40页
(完整)C语言基础知识大全-推荐文档.pdf
资源详情
资源评论
资源推荐
1. 语言变量声明和变量赋值
1)基本数据类型
在 C 语言中,仅有 4 种基本数据类型—整型、浮点型、指针和聚合类型
(如数组和结构等),所有其他的类型都是从这 4 种基本类型的某种组合派生而
来。
整型:整型家族包括字符、短整型、整型和长整型,它们都分为有符号
(signed)和无符号(unsigned)两种版本。规定整数值相互之间大小的规则很
简单:长整型至少应该和整型一样长,而整型至少应该和短整型一样长。
浮点类型:诸如 3.14159 和 2.3×10
23
这样的数值无法按照整数存储。第一
个数为非整数,而第二个数远远超出了计算机整数所表达范围,这样的数就可
以用浮点数的形式存储。浮点数家族包括 float、double 和 long double 类型。通
常,这些类型分别提供单精度、双精度以及在某种扩展精度的机器上提供扩展
精度。ANSI 标准仅仅规定 long double 至少和 double 一样长,而 double 至少和
float 一样长。标准同时规定了一个最小范围:所有浮点类型至少能够容纳从 10
-
37
到 10
37
之间的任何值。
指针:变量的值存储于计算机内存中,每个变量都占据一个特定的位置。
每个内存的位置都由地址唯一确定并应用,就像一条街上的房子由他们的门牌
号码标识一样,指针知识地址的另一个名字。
2)变量声明形式
只知道基本的数据类型是远远不够的,你还应该知道怎样声明变量。变量
的基本形式是:
说明符(一个或多个)
声明表达式列表
对于简单的类型,声明表达式列表就是被声明的标识符的基本类型。对于
相对比较复杂的类型,声明表达式列表的每个条目实际上是一个表达式,显示
被声明的名字的可能用途。
例如:int a, double b;
该语句就是一条声明语句,其中 a,b 就是变量名,该语句指明了变量 a,b
是 int 数据类型。所有变量在使用前都必须写在执行语句之前,也就是变量声明
要与执行语句相分离,否则就是出现编译错误。
3)变量命名
C 语言中任何的变量名都是合法的标示符。所谓标识符就是由字母、数字
和下划线组成的但不以数字开头的一系列字符。虽然 C 语言对标示符的长度没
有限制,但是根据 ANSI 标准,C 编译器必须要识别前 31 个字符。C 语言是对
大小写敏感的,即 C 语言认为大写字母和小写字母的含义是不同的,因此 a1
和 A1 是不同的标识符。
到目前为止,没有一种命名规则可以让所有的程序员赞同,程序设计教科
书一般都不指定命名规则。常用的命名规则有匈牙利命名法和驼峰命名法等,
在实际操作中,我们会采取相对简单方便的命名规则,即“类型首字母”
+“_”+“变量用途英文缩写”,其中英文缩写首字母为大写,例如 int
i_Num,char c_Name[5]。
4)变量赋值
在一个变量声明中,你可以给一个标量变量指定一个初始值,方法是在变
量名后面跟一个等号(赋值号),后面就是你想要给变量的值。例如:
int i_Num=10;
char c_Name[]=”student”;
上述语句声明 i_Num 为一个整数变量,其初始值为 10,声明 c_Name 为一
个字符数组,其初始值为“student”。
在 C 语言中,全局变量和静态变量,如果没有赋初值,则默认初始值
int,float,char 分别为 0,0.0,’\0’,除了全局变量和静态变量以外,其他变量如
果没有赋初值,则默认初始值为内存中的垃圾内容,对于垃圾内容不能有任何
假设。注意:定义指针后,默认初始值不是 0,而是随机的一个值,故定义指
针后,一定要初始化。
在实际操作中,变量的赋值都是以赋值语句的形式出现,赋值语句是由赋
值表达式再加上分号构成的表达式语句。其一般形式为:
变量
=
表达式;
在赋值语句的使用中需要注意以下几点:
a) 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式。
下述形式:
变量
=
(变量
=
表达式);
该语句是成立的,从而形成了嵌套的情形。其展开后的一般形式为:
变量
=
变量
=
…
=
表达式;
例如:a=b=c=d=e=5;
按照赋值运算符的右结合性,因此实际上等效于:e=5;d=e;c=d;b=c;a=b;
b) 注意在变量声明中给变量赋初值和赋值语句的区别
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其他同类变
量之间仍必须用逗号隔开,而赋值语句则必须用分号隔开。
例如:int a=5,b,c;
c) 在变量声明中,不允许连续给多个变量赋初值。
如下述说明就是错误的:
int a=b=c=5;
正确写法为:int a=5,b=5,c=5;
但是,赋值语句允许连续赋值。
d) 注意赋值表达式和赋值语句的区别。
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而
赋值语句则不能。下述语句是合法的:
If((x=y+7)>0) z=x;
语句功能为若表达式 x=y+5 大于 0 则 z=x。
但是,下述语句是错误的:
If((x=y+7;)>0) z=x;
因为 x=y+7;是语句,不能出现在表达式中。
实例:
#include “stdafx.h”
void main()
{
int i_Tmp,i_Type=8;
float f_Tmp;
double d_Tmp;
char c_Tmp;
d_Tmp=d_Tmp=f_Tmp=12;
f_Tmp=i_Type;
i_Tmp=i_Type+3;
printf("a=%d,b=%d,c=%.3f,d=%.6lf",i_Tmp,i_Type,f_Tmp,d_Tmp);
}
参考书目:
1. (美)Kebbeth A.reek.《C 与指针》29-40
2. H.M.Deitel P.J.Deitel 等《how to program Second Edition》19-23
2. 算术运算符及使用方式
C 语言提供了最基本的算术运算符,如下表:
运算符
含义
举例
结果
+
加法运算符
a+b
a 和 b 的和
-
减法运算符
a-b
a 和 b 的差
*
乘法运算符
a*b
a 和 b 的乘积
/
除法运算符
a/b
a 除 b 的商
%
求余运算符
a%b
a 除 b 的余数
++
自加运算符
a++,++a
a 自加 1
--
自减运算符
a--,--a
a 自减 1
1、+、-、*、/都适用于浮点类型和整数类型,当两个操作数都为整数时进
行整数运算,其余情况则进行 double 型运算;当/除法运算符的两个操作数为整
数时,结果为整数,舍去小数部分,例如 5/3 的结果为 1;%求余运算符只接受
两个整型操作数的运算,结果为余数
2、++、--:作用是使变量自加 1 或自减 1,例如 i++、++i,都是使 i 的值
加 1,但其执行的步骤是不同的。例如:
int i=3,j;
j=i++;// i 的值为 4 ,j 的值为 3
int i=3,j;
j=++i;//i 的值为 4,j 的值为 4
可见当变量在左侧时,先进行赋值运算再进行自加 1 操作,当变量在右侧
时,先进行自加 1 操作再进行赋值运算。
3、在赋值运算符之前加上算术运算符既构成复合运算符,例如:a+=b,等
价于 a=a+b。-=、*=、/=也是如此。
3. 位运算符及使用方式(<<、>>、~、|、&、^)
位运算符是用来对二进制位进行操作,如下表:
运算符
含义
<<
左移
>>
右移
~
取反
|
按位或
&
按为与
^
按为异或
<<、>>:移位运算符,例如左移运算符:
int i=3;i=i<<4;
3 的二进制位为 00000011,左移 4 位的结果为 00110000,其操作中高位舍
弃、低位补 0,既 i=48,等同于 i 乘以 2 的 4 次方。
右移运算符则有所不同,操作中是低位舍弃,高位则有两种补位方式。一
种为逻辑移位,高位补 0;另一种为算术移位,当符号位为 1 时高位全部补 1,
当符号位为 0 时则高位全部补 0。具体使用哪种移位方式则取决于当前的编译
环境。
~:取反运算符,为单目运算符,其操作是对操作数的二进制位按位求反,
既 1 变 0,0 变 1。例如 i=5,二进制位为 00000101,取反的结果为 11111010。
在计算机系统中,数值一律用补码来表示和存储,其中最高位为符号位,
用 0 表示正,1 表示负。补码的规定如下:
a) 对正数来说,最高位为 0,其余各位代表数值本身,例如 14 的补码为
00001110;对负数而言,则将该数绝对值的补码按位取反,再加 1,得
该数的补码,既-i=~i+1。例如-14 的补码为 14 的二进制 00001110 取反
加 1 得 11110010。
b) |、&、^:均为双目运算符,对操作数的二进位进行运行,且操作数以
补码的方式出现。
c) |按位或,两个对应的二进位至少有一个为 1 则为 1,否则为 0;&按位
与,两个对应的二进位都为 1 则为 1,否则为 0;^按位异或,两个对
应的二进位不同则为 1,否则为 0。例如:
a=5; (00000101)
b=14; (00001110)
a|b=15; (00001111)
a&b=4; (00000100)
a^b=11; (00001011)
4. 关系运算符及使用方式(>、>=、<、<=、==、!=)
运算符
含义
>
大于
>=
大于或等于
<
小于
<=
小于或等于
==
等于
!=
不等于
关系运算符用于比较两个数值之间的关系,例如:a>3 为关系表达式,大
于号为关系运算符,当表达式成立时,“a>3”的值为“真”,当“a>3”不成立
时,“a>3”的值为“假”。
其中应当注意的是关系表达式的返回值为整型值,而不是布尔型。表达式
为真时返回值为 1,表达式为假时返回值为 0。
5. 逻辑运算符及使用方式(&&、||、!)
运算符
含义
举例
结果
&&
逻辑与
a&&b
a,b 都为真则结果为真,否则为假
||
逻辑或
a||b
a,b 至少有一个为真则结果为真,否则为假
!
逻辑非
!a
当 a 为真则结果为假,当 a 为假则结果为真
其中应当注意逻辑或,例如 a||b,当 a 为真时,C 语言中直接跳过对 b 的判
断,其返回值为“真”。
当一个表达式包括几种运算符时,则以运算符的优先级对表达式进行运算,
表达式的优先级如下:
优先级
运算符类型
说明
1
初等运算符
()、[]、->、.
2
单目运算符
!、~、++、--、*(指针运算符)、&(取地址运算符)
3
算术运算符
先乘除后加减
4
关系运算符
>、>=、<、<=、==、!=
5
逻辑运算符
&&、||
6
条件运算符
三目运算符,例如?:
7
赋值运算符
=
8
逗号运算符
,
6. 指针的概念与使用
1) 指针的定义
指针就是变量的地址,是一个常量。定义指针的目的就是为了通过指针访
问内存单元。在 C 语言中,允许用一个变量来存放指针,这种变量称为指针变
量。
指针变量定义的一般形式为:
存储类型
数据类型
*
指针变量名
2) 指针变量运算符
1、取地址运算符:&
该运算符表示的是对&后面的变量进行取地址运算。
例:int a;
则 &a 表示取变量 a 的地址,该表达式的值为变量 a 的首地址。
剩余39页未读,继续阅读
智慧安全方案
- 粉丝: 3650
- 资源: 59万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- vscode配置c/c 环境教程
- vscode配置c/c 环境教程
- 基于matlab实现电磁优化计算功能,进行线型规划优化电磁设计.rar
- 基于matlab实现带精英策略的非支配排序遗传算法matlab 源码.rar
- 基于matlab实现差分进化算法,最新的用于替代遗传算法,是以后的主要发展方法.rar
- VSCode配置c/c++环境教程.md
- 基于matlab实现标准合作型协同进化遗传算法matlab源程序
- 七下人教.zip
- 基于matlab实现本份代码能对图像进行gabor滤波处理,结合指纹方向图以及指纹沟壑频率特性,对指纹图像进行增强.rar
- 基于matlab实现RBM神经网络实现了手写数字体识别的GUI程序.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0