-1
我碰到这个代码来我不知道它在做什么C++字面后面的支架
// ptr is a pointer to an int
if (2[ptr] == 5){
// do something
}
我做了一些我的测试,但无论我传递到PTR什么样的价值,0,底片,正片,2[ptr]
总是评估为0.我很惊讶它实际编译。有人能解释这个表达是什么吗?
我碰到这个代码来我不知道它在做什么C++字面后面的支架
// ptr is a pointer to an int
if (2[ptr] == 5){
// do something
}
我做了一些我的测试,但无论我传递到PTR什么样的价值,0,底片,正片,2[ptr]
总是评估为0.我很惊讶它实际编译。有人能解释这个表达是什么吗?
2[ptr]
与ptr[2]
(或多或少)相同。有人对你开玩笑。至于为什么它总是评估为0,那取决于程序的其余部分,这是我们看不到的。
你在哪里“碰到”这个代码?谁写的?你为什么不问他们做了什么,为什么? –
使用该语法编写代码的人不应该被允许将代码传递给代码库:) – CoryKramer
'2 [ptr]'被评估为'*(ptr + 2)' – Arash