c语言中,!(--x)什么意思? 30

 我来答
帐号已注销
高粉答主

推荐于2020-04-17 · 关注我不会让你失望
知道小有建树答主
回答量:1346
采纳率:100%
帮助的人:34.5万
展开全部

C语言运算符,括号里面(---x)表示x的值减去1,相当于“x”变为“x-1”,括号外面“!”表示取反(非0数变为0,0变为1)。

除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符



扩展资料


优先级,C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。

结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。

而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。

具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。

其次是单目运算符,所有的单目运算符具有相同的优先级,因此在我认为的 真正的运算符中它们具有最高的优先级,又由于它们都是从右至左结合的,因此*p++与*(p++)等效是毫无疑问的。

另外在C语言里,没有前置后置之分,因为++ -- 是右结合所以右侧优先运算,表现为 "操作数后置优先级比较高" 的假象,前置和后置的区分是因为运算符重载而后加入C++的

接下来是算术运算符,*、/、%的优先级当然比+、-高了。

参考资料来源:百度百科-C语言运算符

TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
百度网友4217d48
2019-06-27 · TA获得超过4221个赞
知道答主
回答量:17
采纳率:0%
帮助的人:4620
展开全部

C语言运算符,括号里面(---x)表示x的值减去1,相当于“x”变为“x-1”,括号外面“!”表示取反(非0数变为0,0变为1)。

除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。


扩展资料

C语言中++*x和*++x的区别

(1)“++“跟“*”的优先级一样,如果两个同时出现,运算顺序是从右往左(不是常规的从左往右)。即“++*x”即“++(*x)”,先取x的值,然后让值自加1。(地址没变,指针指向的值变了)。

(2)“*++x”即“*(++x)”,先让x的自加1,就是x的地址加上这个指针类型的步长(比如说这个指针是int类型,那它的地址+4,以此类推),然后再取x的值。(地址变了,但是值没变)

(3)另外的,int *x,“x”代表的是指针,指针即地址,*是取值符,*x就是取指针x里存的值。

参考资料来源:百度百科-C语言运算符

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
迷你手工老张
高粉答主

2019-05-24 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:27.4万
展开全部

在C语言中,~x代表的意思是按位取反的意思。

将x按位取反

比如x = 10101010b。

那么~x = 01010101b。

还要注意,在C语言中,还有逻辑取反符号“!”,“!x”的返回值只有0和1两种。如果x为0,则!x=1。如果x不等于0.则!x的返回值为0。

扩展资料:

c语言关键字。

signed    声明有符号类型变量

unsigned  声明无符号类型变量

struct    声明结构体变量

union     声明联合类型

enum      声明枚举类型

switch    用于开关语句

case      开关语句分支

default   开关语句中的“其他”分支

auto      声明自动变量,缺省时编译器默认为此

const     声明只读变量

static    声明静态变量

register  声明寄存器变量

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神の桜a87f0f
2021-12-03 · TA获得超过6953个赞
知道小有建树答主
回答量:1008
采纳率:80%
帮助的人:120万
展开全部
--x表示递减,相当于x=x-1
!表示逻辑非
因为--在x前面所以先对x求递减,再求逻辑非。
如果x-1=0即x=1,则 !(x-1)为真,并且x=x-1
如果x-1 !=0即x!=1,则,!(x-1)为假,并且x=x-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sqiuzhao
2013-02-06 · TA获得超过1347个赞
知道小有建树答主
回答量:967
采纳率:0%
帮助的人:417万
展开全部
x的值先减1,再进行取反。如果非零则式子为0,0则非零
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式