someobject* scratchpad[10000][33];
我想在一个声明中这样做:
unsigned int index = (int) scratchpad[j][0];
scratchpad[j][0] = (someobject*) (index + 1);
我以为是:
unsigned int index = (unsigned int) ++((char*)scratchpad)[j][0];
但我无法正确理解语法。我实际上是在第一个(0)子数组索引中存储一个整数。
答案 0 :(得分:2)
不要在第一个子数组索引中存储整数。存放在别处。认真。不要这样做。
但如果你是一个绝对的狂热者,唯一的目标就是让人们讨厌你,那么假设unsigned int
并不比指针大,那么这就有效。
unsigned index = ++reinterpret_cast<unsigned&>(scratchpad[j][0]);
答案 1 :(得分:0)
我觉得你并没有告诉我们你的问题是什么。所以我只能猜测这是你真正需要的:
++scratchpad[j][0];
假设scratchpad
只是一个指针数组,你只想增加其中一个。如果是这种情况,你根本不需要演员,所以完成工作并且所有丑陋的代码都消失了。否则,你需要用语言澄清。
答案 2 :(得分:-2)
我写这个作为答案,而不是评论,所以(希望)大量的支持者会说服你我是对的。
unsigned int index = (unsigned int) ++((char*)scratchpad)[j][0];
即使这样做(它不应该......)这不是你应该拥有的,它是神秘的,难以阅读。
2行很好,虽然我不确定你是不是......什么是某个对象和一个无符号的int ...我会在评论中问这个。