动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > C/C++教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ C/C++教程 ]的信息



本月文章推荐
.C语言入门之枚举与位运算(2).
.C++ sizeof 使用规则及陷阱分析.
.快速排序法!.
.C++ 继承性应用实例—日期和时间.
.Win 95/NT下OpenGL编程原理.
.C++跨平台游戏开发之ClanLib&nbs.
.指针与数组.
.C++ 对象的初始化.
.C++ 对象和对象的定义.
.C++/CLR泛型与C++模板的对比.
.高质量C++/C编程指南 --&nb.
.在 Linux 下建立软体套件.
.Visual C++设计UDP协议通讯示例.
.C++中数组和指针类型的关系.
.实现Cookie.
.C++习题与解析(类和对象-04).
.C语言入门之基础语句.
.通过并行机制处理鼠标和键盘.
.编程特例篇——LOGO语言.
.5.  运算符.

5.  运算符

发表日期:2008-3-8 |



  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'进行计算。
 

二、增量运算
在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定义为浮点数。
 

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中是有规定的。 有关运算符的优先级本节后面将会讲到。
  5.3 按位运算符
Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的
位操作有些相似。
Turbo C中按位运算符有:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
操作符 作用
────────────────────────────
& 位逻辑与
  位逻辑或
^ 位逻辑异或
- 位逻辑反
>> 右移
<< 左移
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符
型和整数型变量以及它们的变体, 对其它数据类型不适用。
关系运算和逻辑运算表达式的结果只能是1或0。 而按位运算的结果可以取0
或1以外的值。
要注重区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为
真(两个非零值相与仍为非零), 而x&8的值为0。
移位运算符">>"和"<<"是指将变量中的每一位向右或向左移动, 其通常形式
为:
右移: 变量名>>移位的位数
左移: 变量名<<移位的位数
经过移位后, 一端的位被"挤掉", 而另一端空出的位以0 填补, 所以,
Turbo C中的移位不是循环移动的。
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()
{
int x, y;
x=50;
y=(x=x-5, x/5);
}
上面程序执行后y值为9, 因为x的初始值为50, 减5后变为45, 45除5为9赋给
y。

 

四、sizeof运算符
sizeof运算符是一个单目运算符, 它返回变量或类型的字节长度。
例如:
sizeof(double) 为8
sizeof(int) 为2
也可以求已定义的变量, 例如:
float f;
int i;
i=sizeof(f);
则i的值将为4。
 

五、联合操作
Turbo C中有一非凡的简写方式, 它用来简化一种赋值语句, 适用于所有的
双目运算符。其一般形式为:
<变量>=<变量><操作数><表达式>
相当于
<变量><操作数>=<表达式>
例如:
a=a+b 可写成 a+=b
a=a&b 可写成 a&=b
a=a/(b-c) 可写成 a/=b-c
5.5 Turbo C运算符的优先级
Turbo C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符
参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低,
同一行优先级相同。
例如:
表达式 10>4&&!(100<99)  3<=5 的值为1
表达式 10>4&&!(100<99)&&3<=5 的值为0
 

Turbo C运算符的优先次序
━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━
表达式 ┃优先级
────────────────────────────╂────
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员)┃ 最高
────────────────────────────┃ ↑
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址)┃ │
────────────────────────────┃ │
*(指针所指内容) type(函数说明) sizeof(长度计算) ┃ │
────────────────────────────┃ │
*(乘) /(除) %(取模) ┃ │
────────────────────────────┃ │
+(加) -(减) ┃ │
────────────────────────────┃ │
<<(位左移) >>(位右移) ┃ │
────────────────────────────┃ │
<(小于) <=(小于等于) >(大于) >=(大于等于) ┃ │
────────────────────────────┃ │
==(等于) !=(不等于) ┃ │
────────────────────────────┃ │
&(位与) ┃ │
────────────────────────────┃ │
^(位异或) ┃ │
────────────────────────────┃ │
 (位或) ┃ │

────────────────────────────┃ │
&&(逻辑与) ┃ │
────────────────────────────┃ │
  (逻辑或) ┃ │
────────────────────────────┃ │
?:(?表达式) ┃ │
────────────────────────────┃ │
= += -=(联合操作) ┃ │
────────────────────────────┃ │
,(逗号运算符) ┃ 最低
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
上一篇:C++箴言:防止异常离开析构函数 人气:314
下一篇:Windows Sockets:操作顺序 人气:284
浏览全部C/C++的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号