int add(int a, int b)
{
return (int)&(((char *)a)[b]);
}
Run Code Online (Sandbox Code Playgroud)
我为什么要投a一个char *而不是int *?
我试图完全理解这段代码,但我不能,所以如果你很容易,请提供一个简单的英文解释.
我们的想法是,数组只是添加带索引的指针.如果a是char [](或char *)并且b是整数,那么a[b]是地址处的值a+b.此代码a作为指针进行转换,使用b索引它,并找到应该相等的地址a+b.
但在现实世界中,永远不要这样做.