为了账号安全,请及时绑定邮箱和手机立即绑定

我有一个带有条件的for循环如下:

我有一个带有条件的for循环如下:

C++
慕婉清6462132 2019-06-02 17:01:03
 uint index = ...// const float *bufferPtr = ...// uint stride = ...// uint vertexCount = ...for (uint i = 0; i < vertexCount; i++) {     float xVal = *bufferPtr++;     float yVal = *bufferPtr++;     float zVal = *bufferPtr++;     bufferPtr += stride;     if (i == index) {         qDebug() << "Vertex coord: " << xVal << " , " << yVal << " , " << zVal;     }}我尝试用索引直接访问替换for循环(及其中的条件):float xVal = *(bufferPtr + index * stride + 0);float yVal = *(bufferPtr + index * stride + 1);float zVal = *(bufferPtr + index * stride + 2);qDebug() << "Vertex coord without loop: " << xVal << " , " << yVal << " , " << zVal;但输出日志给我不同的结果:Vertex coord:  14.574  ,  -8.236  ,  7.644Vertex coord without loop:  20.67  ,  -19.098  ,  18.536Vertex coord:  14.552  ,  -8.024  ,  7.842Vertex coord without loop:  -0.361096  ,  0.109164  ,  0.926117Vertex coord:  14.722  ,  -8.18  ,  7.842Vertex coord without loop:  20.648  ,  -19.052  ,  18.522我无法弄清楚为什么结果不同:(C ++
查看完整描述

3 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

你知道[]运算符吗?你知道指针算术需要对象的大小,指针指向它吗?你知道struct吗?我不知道你的代码为何如此复杂。您能否提供一些背景知识,为什么您需要通过手工制作的指针算法进行所有访问?

查看完整回答
反对 回复 2019-06-02
  • 3 回答
  • 0 关注
  • 680 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信