C语言*运算符和运算符
取址运算符&
用来取得其操作数的地址。如果操作数 x 的类型为 T,则表达式 &x 的类型是 T 类型指针(指向 T 的指针)。
取址运算符的操作数必须是在内存中可寻址到的地址。换句话说,该运算符只能用于函数或对象(例如左值),而不可以用于位字段,以及那些还未被存储类修饰符 register 声明的内容。
当需要初始化指针,以指向某些对象或函数时,需要获得这些对象或函数的地址:
float x, *ptr;ptr = &x;
// 合法:使得指针ptr指向xptr = &(x+1);
// 错误: (x+1) 不是一个左值
相反地,当已具有一个指针,并且希望获取它所引用的对象时,使用间接运算符 *(indirection operator),有时候这会被称为解引用运算符(dereferencing operator)。它的操作数必须是指针类型。如果 ptr 是指针,那么 *ptr 就是 ptr 所指向的对象或函数。如果 ptr 是一个对象指针,那么 *ptr 就是一个左值,可以把它(即 *ptr)当作赋值运算符左边的操作数:
float x, *ptr = &x;*ptr = 1.7; // 将1.7赋值给变量x++(*ptr); // 并将变量x的值加1
在这个示例最后的语句中,ptr 的值保持不变,但 x 的值变成 2.7。
如果指针操作数的值不是某个对象或函数的地址,则间接运算符*的操作结果无法确定。
像其他一元操作数一样,运算符 & 和 * 具有很高的优先级。操作数的组合方式是从右到左。因此,表达式 ++(*ptr)中的括号是没有必要的。
运算符 & 和 * 是互补的:如果 x 是一个表达式,用于指定一个对象或一个函数,那么表达式 *&x 就等于 x。相反地,在形如 &*ptr 的表达式中,这些运算符会互相抵消,表达式的类型与值等效于 ptr。然而,不管 ptr 是不是左值,&*ptr 都一定不会是左值。
声明:
本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
C语言*运算符和运算符相关推荐
- C语言表达式和运算符大学霸IT达人
C语言表达式和运算符大学霸IT达人 C语言中表达式会包含常量.标识符.运算符.最基础最简单的表达式就是常量表达式.单独的常量表达式是没有意义的.例如,3就是一个常量表达式,单独放在一处没有实际的意义. ...
- 数学运算符和运算符的优先级
一.数学运算符和运算符的优先级 所谓数学函数,顾名思义就是在公式中为了进行数学运算所设计出来的函数.其实要在Excel中进行数学运算并不是所有的情况下都用数学函数,有些情况下可以用基本的数学运算符就可 ...
- iOS开发基础-C语言数据类型和运算符
第2章 数据类型和运算符 2.1 注释 程序注释是源代码的一个重要部分,对于一份规范的程序源代码而言,注释应该占到源代码的1/3以上: 单行注释 //: 多行注释 /*注释开始和*/注释结束,需要指出 ...
- c语言关键字和运算符,C语言关键字和运算符.doc
C语言一共有32个关键字,如下所述: auto :声明自动变量 short :声明短整型变量或函数 int: 声明整型变量或函数long :声明长整型变量或函数 float:声明浮点型变量或函数 do ...
- c++语言运算符的优先次序,C++中的运算符和运算符优先级总结
运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本文将逐一介绍算术运 ...
- C++中的运算符和运算符优先级总结
原文链接:http://www.jb51.net/article/83857.htm 运算符是一种告诉编译器执行特定的数学或逻辑操作的符号.C++ 内置了丰富的运算符,并提供了以下类型的运算符: 算术 ...
- JS运算符和运算符的优先级
一.算数运算符 + 加:可以对两个值进行加法运算,如果是两个字符串则进行字符串拼接 任何值和字符串做加法运算,都会先转为字符串,然后再和字符串做拼接操作 也可以通过"+"完成隐式转 ...
- GCC总结、C语言关键字和运算符
文章目录 GCC选项总结 关键字 运算符 GCC选项总结 #查看gcc版本 gcc -v #小写的vgcc -o 输出的文件名 输入文件名GCC编译的四个阶段: gcc -E #预处理生产.i文件 g ...
- 【MySQL】MySQL中的逻辑运算符,位运算符和运算符的优先级
目录 一. 逻辑运算符 1.1 逻辑非NOT 1.2 逻辑与AND 1.3 逻辑或OR 1.4 逻辑异或XOR 二. 位运算符 三. 运算符的优先级 一. 逻辑运算符 MySQL中支持4种逻辑运算符: ...
最新文章
- WIN7安装及配置JDK
- 【实验】利用系统自带脚本utlsampl.sql创建scott用户及样本数据
- APP上架证书无效:解决
- 字符串-字符串的查找和替换
- [转载] Java笔试题集锦
- web导入excel数据
- oracle sqe值,质量感悟 | 无论什么层次的供应商都喜欢跟SQE中的高手过招儿
- CKeditor的几种配置方式
- .NET 基础一步步一幕幕[out、ref、params]
- 就是要你懂Java中volatile关键字实现原理
- 梳理需求-需求调研报告
- java开发职业规划(一)
- 动态考勤表-日期只能在某个月选时间段
- chimera添加氨基序列
- lcs问题java_动态规划法(十)最长公共子序列(LCS)问题
- 2019年Q3股票行情:依旧大喜大悲
- 字符串(づ。◕‿‿◕。)づ进阶之章
- 【每日新闻】企业微信终于与微信实现互通,微信生态商业化的想象力究竟有多大? | To B“非成勿扰”,解决企业服务对接难题
- 探索SwipeRefreshLayout配合自定义ListView完成下拉刷新、滑到底部自动加载更多
- 百度编辑器(ueditor)踩坑,图片转存无法使用