好文档 - 专业文书写作范文服务资料分享网站

C语言基础教程

天下 分享 时间: 加入收藏 我要投稿 点赞

. . }

由上例可以看出数组和指针有如下关系: (p+i)=&(s[i]) *(p+i)=s[i]

因此, 利用上述表达式可以对数组和指针进行互换。两者的区别仅在于: 数组

s是程序自动为它分配了所需的存储空间; 而指针p则是利用动态分想函数为它分配 存储空间或赋给它一个已分配的空间地址。

C语言基础教程(十七)

网上收集整理 运算符(1)

Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符, 关系运算符与 逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下 面分别进行介绍。

5.1 算术运算符

Turbo C的算术运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用

──────────────────────────── + 加, 一目取正 - 减, 一目取负 * 乘 / 除 % 取模 -- 减1 ++ 加1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

一、一目和二目操作

一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。 二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。

在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。需要注意 的是除法和取模运算。 例如:

15/2 是15除以2商的整数部分7 15%2 是15除以2的余数部分1 对于取模运算符\不能用于浮点数。

另外, 由于Turbo C中字符型数会自动地转换成整型数, 因此字符型数也可

以参加二目运算。 例如: main() {

char m, n; /*定义字符型变量*/ m='c'; /*给m赋小写字母'c'*/

n=m+'A'-'a'; /*将c中的小写字母变成大写字母'B'后赋给n*/ ... }

上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将 小写字母变成大写字母, 反之, 如果要将大写字母变成小写字母, 则用c+ 'a' -'A'进行计算。

C语言基础教程(十八)

网上收集整理 运算符(2)

二、增量运算

在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个 运算符就是增1和减1运算符\和\运算符\是操作数加1, 而\则是 操作数减1。 例如:

x=x+1 可写成x++, 或++x x=x-1 可写成x--, 或--x

x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。 x=m++ 表示将m的值赋给x后, m加1。 x=++m 表示m先加1后, 再将新值赋给x。

三、赋值语句中的数据类型转换

类型转换是指不同类型的变量混用时的类型改变。 在赋值语句中, 类型转换规则是:

等号右边的值转换为等号左边变量所属的类型。 例如: main() {

int i, j; /*定义整型变量*/

float f, g=2.58; /*定义浮点型变量*/

f=i*j; /*i与j的乘积是整型数, 被转换成为浮点数赋给f*/ i=g; /*g中的浮点型数转换成为整型数赋给i*/ ... }

由于Turbo C按上述数据类型转换规则, 因此在作除法运算时应特别注意。 例如:

main() {

float f; int i=15; f=i/2; }

上面程序经运行后, f=7并不等于准确值7.5。正确的程序应该是: main() {

float f; int i=15; f=i/2.0; }

也可直接将i定义为浮点数。

C语言基础教程(十九)

网上收集整理 运算符(3)

5.2 关系运算符和逻辑运算符 一、逻辑运算符

逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。 Turbo C的逻辑运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用

───────────────────────────── && 逻辑与 || 逻辑或 ! 逻辑非

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

二、关系运算符

关系运算符是比较两个操作数大小的符号。 Turbo C的关系运算符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用

───────────────────────────── > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。Turbo C中 true可以是不为0的任何值, 而false则为0。 使用关系运算符和逻辑运算符表达 式时, 若表达式为真(即true)则返回1, 否则, 表达式为假(即false), 则返回0。 例如:

100>99 返回1 10>(2+10) 返回0 !1&&0 返加0

对上例中表达式!1&&0, 先求!1和先求1&&0将会等于出不同的结果, 那么何 者优先呢? 这在Turbo C中是有规定的。 有关运算符的优先级本节后面将会讲到。

[上一页] [下一页]

C语言基础教程(二十)

网上收集整理 运算符(4)

5.3 按位运算符

Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的 位操作有些相似。

Turbo C中按位运算符有:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符 作用

──────────────────────────── & 位逻辑与 | 位逻辑或 ^ 位逻辑异或 - 位逻辑反 >> 右移 << 左移

━━━━━━━━━━━━━━━━━━━━━━━━━━━━

按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符 型和整数型变量以及它们的变体, 对其它数据类型不适用。

关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果可以取0 或1以外的值。

要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为 真(两个非零值相与仍为非零), 而x&8的值为0。

移位运算符\和\是指将变量中的每一位向右或向左移动, 其通常形式 为:

右移: 变量名>>移位的位数 左移: 变量名<<移位的位数

经过移位后, 一端的位被\挤掉\ 而另一端空出的位以0 填补, 所以, Turbo C中的移位不是循环移动的。

[上一页] [下一页]

C语言基础教程(二十一)

网上收集整理 运算符(5)

5.4 Turbo C的特殊运算符 一、\运算符

\运算符是一个三目运算符, 其一般形式是: <表达式1>?<表达式2>:<表达式3>;

\运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把 它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为 整个表达式的值。 例如: main() {

int x, y; x=50;

y=x>70?100:0; }

本例中, y将被赋值0。如果x=80, y将被赋值100。 因此, \运算符可以代替某些if-then-else形式的语句。

二、\和\运算符

\运算符是一个返回操作数地址的单目操作符。

\运算符是对\运算符的一个补充, 它返回位于这个地址内的变量值, 也 是单目操作符。 例如: main() {

int i, j, *m; i=10;

m=&i; /*将变量i的地址赋给m*/

j=*m; /*地址m所指的单元的值赋给j*/ }

上面程序运行后, i=10, m为其对应的内存地址, j的值也为10。

三、\运算符

\运算符用于将多个表达式串在一起, \运算符的左边总不返回, 右边表 达式的值才是整个表达式的值。 例如: main()

C语言基础教程

..}由上例可以看出数组和指针有如下关系:(p+i)=&(s[i])*(p+i)=s[i]因此,利用上述表达式可以对数组和指针进行互换。两者的区别仅在于:数组s是程序自动为它分配了所需的存储空间;而指针p则是利用动态分想函数为它分配存储空间或赋给它一个已分配的空间地址。C语言基础教程(十七
推荐度:
点击下载文档文档为doc格式
8a1ou1x73m28mwx144wv
领取福利

微信扫码领取福利

微信扫码分享