回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++教程 >> C 语言基础教程 >> 21. 赋值运算符
最 近 更 新
54. goto 语句
53. switch 语句推荐
52. continue 和 break
51. 条件运算符(?:)
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
46. if 语句
45. 循环应用实例 2
最 新 推 荐
53. switch 语句推荐
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
44. 循环应用实例 1推荐
43. 循环嵌套推荐
40. for 循环推荐
37. 关系运算符推荐
36. while 循环推荐
热 门 排 行
2. 第一个 C 程序推荐
31. 预处理指令 #define..推荐
1. C 语言简介
11. 基本数据类型:整型..推荐
24. 运算符的优先级和结..推荐
5. 如何编写函数
30. 字符串字面量推荐
13. 标识符命名规则
36. while 循环推荐
7. 第三个 C 程序推荐
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

21. 赋值运算符


来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:精品
发布于2006-01-28 15:31 被读2401次 【字体:

Antigloss 最后修改于 2006-12-27

 

C 语言提供的用于基本算术运算的运算符operator)有:=+-*,以及 /C 没有提供指数运算符,不过 C 标准函数库提供了 pow 函数用于指数运算。例如:pow(9.0, 2.0) 返回 81.0,也就是 9.0 2.0 次方。

 

 

赋值运算符(Assignment Operator: =

 

C 语言中, = 不是等于号,而是赋值运算符。以下语句:

 

var = 100;

 

把整数值 100 赋予变量 var。也就是说,= 左部是变量的名字,右部是赋予变量的值。不要把上述语句理解为“var 等于 100”,正确的理解是“将整数值 100 赋予变量 var”。我们再看一个语句:

 

var = var + 1;

 

这个语句的意思是,先将 var 的值和 1 相加,然后把相加结果赋值给 var 。假设赋值之前 var 的值是 100,那么赋值后 var 的值就是 101

 

语句 100 = var; 是非法的。因为 100 是一个常量,常量的值是不能改变的,所以我们不能给 100 赋值。我们必须牢牢记住,= 的左部必须是变量

 

 

术语解释:数据对象(Data Object)、左值(Lvalue)、
右值(Rvalue),操作数(Operand

 

数据对象是指可用于存取的一定量的数据存储空间。例如:用于存储变量或者数组等的数据存储空间就是数据对象。左值是指用于识别特定数据对象的名字或者表达式expression)。变量名就是左值。所以,数据对象是指实际的数据存储空间,而左值是指用于识别或者定位存储空间的标签。

 

并非所有数据对象的值都可以改变。如果某个左值确定的数据对象刚好是可变值的,则称这个左值为可变左值modifiable lvalue)。因此,我们说赋值运算符的左部必须是可变左值

 

右值是指可用于赋值给可变左值的值。例如:

 

var = 100;

 

这里的 var 是可变左值,100 是右值。右值可以是常量、变量,也可以是任何能够产生的表达式。

 

    操作数是指运算符的作用对象。所以,var 100 都是赋值运算符的操作数。

 

下面我们来看一个例子。

 

/* height.c */
#include <stdio.h>

 

int main(void)
{
    int Antigloss, Sally, Ralphclark;

 

    Antigloss = Sally = Ralphclark = 172;

 

    printf("        Antigloss   Sally   Ralphclark\n");
    printf("Height:   %d        %d       %d\n", Antigloss, Sally, Ralphclark);

 

    return 0;
}

 

赋值运算是从右向左进行结合的,上面的赋值语句首先将 172 赋值给 Ralphclark,然后把Ralphclark的值(也就是 172)赋予 Sally,最后把 Sally 的值赋予 Antigloss。运行结果如下:

 

        Antigloss   Sally   Ralphclark
Height:   172        172       172

 

参考资料C Primer 5th Edition

C99 标准

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:C 语言运算符
巧用异或交换整型变量的值
51. 条件运算符(?:)

上一篇:20. 转义字符使用实例
下一篇:22. + 运算符和 – 运算符

共有评论 0 条 网友评分 1分 查看全部评论

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss