C语言中++i代表自加1,为什么如下图程序中(++p)->a得5?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/18 08:28:59
C语言中++i代表自加1,为什么如下图程序中(++p)->a得5?
然后我把(++p)->a中删掉一个+,变成了(+p)->a,结果就是3了(如下图).但是+不是双目运算符么?
真正的原因是:
printf这个函数的执行顺序是从右往左的
也就是说先输出(p++)->s此时p加了一次1
在输出(++p)->s此时又加了一次1
我是自己试出来的,实验程序如下:
至于我后来说的(+p)->a这个,(+p)中的+根本就没参加运算.
然后我把(++p)->a中删掉一个+,变成了(+p)->a,结果就是3了(如下图).但是+不是双目运算符么?
真正的原因是:
printf这个函数的执行顺序是从右往左的
也就是说先输出(p++)->s此时p加了一次1
在输出(++p)->s此时又加了一次1
我是自己试出来的,实验程序如下:
至于我后来说的(+p)->a这个,(+p)中的+根本就没参加运算.
指针加减是对指针所指的大小而言的,这里指针加一实际上是对这个结构体的长度加一.那么就移动了两个int长度,指向了s(2)
再问: 我起初也是这么想的,但是真正的原因是:printf这个函数的执行顺序是从右往左的也就是说先输出(p++)->s此时p加了一次1在输出(++p)->s此时又加了一次1
我是自己试出来的
再答: 支持,我答完就知道错了。的确是你说的,刚准备上来完善
再问: 我起初也是这么想的,但是真正的原因是:printf这个函数的执行顺序是从右往左的也就是说先输出(p++)->s此时p加了一次1在输出(++p)->s此时又加了一次1
我是自己试出来的
再答: 支持,我答完就知道错了。的确是你说的,刚准备上来完善
C语言程序中" a"代表什么数据
C语言程序问题,如下图
在编译原理LL(1)自顶向下语法分析程序中,advance是做什么用的,如何用C语言实现?
c语言中 p = i - i&(i^(i-1))
在下列C语言程序中,可以用做变量名的是 A) 1 B) a1 C) int D) *p
C语言中为什么 假如定义一个*p=&a,然后为什么这个*p++与*(p+1)是相等的?
c语言程序中,while(!
看下这个c语言程序为什么要定义*p?然后for(p=a;p
C语言中*p=&a是什么意思
在c语言程序中!a与a!
下列C语言程序段的while循环中() int i=1; while(5) { i++;if(i>3) break; }
在语言处理程序中,解释程序的功能是() A.解释执行高级语言程序 B.将汇编语言程序编译成目标程序 C.解释执行汇编语言