首页 热点资讯 义务教育 高等教育 出国留学 考研考公

c++中this[i]的用法是什么语法?

发布网友 发布时间:2022-04-25 16:46

我来回答

2个回答

热心网友 时间:2023-10-19 18:24

这里跟operator[]的重载是没有关系的,因为this是指向自己的指针,而*this才是一个ExecState实例。
那么问题就是如何从C语言的层面进行理解。this[JSStack::Callee]其实是*(this+JSStack::Callee)。如果没有了解过webkit的代码,但也能猜测calleeAsValue()的调用条件是这个实例在一个数组中(或许是一个用数组实现的栈?),这样那句代码才有意义。

热心网友 时间:2023-10-19 18:24

主要差异在于返回值,相同点在于对i进行自加:
++i返回的是i自加后的内容,i++返回的是i未自加的内容。
举个例子:
int i = 10;
a = i++;
vs
int i = 10;
b = ++i;
结果分别是 i = 11, a = 10和 i = 11, b = 11。
将i++和++i汇编结果,若没有使用其返回值赋值特性,结果是一样的,有返回值差异在于汇编代码执行先后(先自加还是先赋值)区别。

另外,关于for(i = 0; i < n; i++)与for(i = 0; i < n; ++i) 有差异的说法是扯淡的。现在看到的编译器,基本都会汇编成相同的代码(好像有基本经典教程说有差异,那只是针对古老的编译器)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com