不使用+符号添加

0 c c++

int add(int a, int b)
{
  return (int)&(((char *)a)[b]);
}
Run Code Online (Sandbox Code Playgroud)

我为什么要投a一个char *而不是int *

我试图完全理解这段代码,但我不能,所以如果你很容易,请提供一个简单的英文解释.

Gra*_*row 6

我们的想法是,数组只是添加带索引的指针.如果achar [](或char *)并且b是整数,那么a[b]是地址处的值a+b.此代码a作为指针进行转换,使用b索引它,并找到应该相等的地址a+b.

但在现实世界中,永远不要这样做.