魔法虫虫
发表于 2018-5-6 16:24:34
差一点就懂了
x420520
发表于 2018-7-9 22:15:36
先看看 有点坑居然要10个鱼币
一定是红豆味
发表于 2018-8-2 15:30:58
还可以
冬阳阳
发表于 2018-8-8 13:06:42
鱼哥,出现左值错误,是因为把常量当作变量用了么?
zhudesheng
发表于 2018-9-5 07:15:01
没看懂的,我瞎yy一下
#include <stdio.h>
int main()
{
int a = 5;
a++;
++a;
return 0;
}
对应的汇编代码如下
.file "hello.c"
.text
.globlmain
.type main, @function
main:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
//将5赋值给a
movl $5, -4(%rbp)
//对a增加1
addl $1, -4(%rbp)
对a增加1
addl $1, -4(%rbp)
movl $0, %eax
popq %rbp
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size main, .-main
.ident"GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609"
.section .note.GNU-stack,"",@progbits
在指令层,其实是可以做到的++(a++)的,只不过是编译器不允许这样做,a++=6=5+1,则没有错,但是++a就会变成++6等价于6=6+1,显然6在指令层可能不是一个内存地址,而是一个常数,所以赋值不上去
辑或
发表于 2018-10-5 12:06:00
看看
whdd
发表于 2018-10-7 16:45:21
{:9_225:}
矢月
发表于 2018-10-8 16:17:52
长见识了{:10_279:}
Julia999
发表于 2018-11-10 20:52:18
好棒
紫轩aa
发表于 2018-11-14 17:58:42
{:5_90:}
Julia999
发表于 2018-11-20 09:26:12
好文章
SINOSMG
发表于 2018-11-21 14:05:10
算式的运算没看懂:a = 5; ++a++ 等于 ++(a++),也就是++ (5+1) 等于 ++ 6,也就是7吗?
SINOSMG
发表于 2018-11-21 14:22:49
刚刚看了变量名++的解释,更正:++ (a++)相当于++(4+1) ,a为自增后的值
{:5_109:}
cjh123
发表于 2018-12-12 18:14:44
表示没看懂
大显666
发表于 2019-1-12 12:05:15
有收获
wangjievibeke
发表于 2019-2-2 02:51:02
麻烦能出一个视频讲解一下 这篇文章里面的知识吗???
wlps2006
发表于 2019-2-24 11:59:50
mark{:5_109:}
15579618832
发表于 2019-4-23 20:41:02
懵懵懂懂的
15579618832
发表于 2019-4-23 20:42:41
独我雅想 发表于 2017-8-12 19:04
感觉每次小甲鱼出的机试题目我都不会写
同感,我还以为只有我一个不会{:9_234:}
大同先生
发表于 2019-4-30 09:33:21
更清晰了一点 ,牛*
页:
1
[2]
3
4
5
6
7
8
9
10
11