我在SL参考中搜索了“副本”,但找不到任何相关内容。
如果我有
float a[3] = float[3] (1.0,2.0,3.0);
float b[3] = a;
b
现在指向a
吗?如果我更改b[0]
,那会改变a[0]
吗?
如果答案是肯定的,我是否可以使用复制函数来获得a
的克隆但不指向它?谢谢
答案 0 :(得分:1)
请参见GLSL - The OpenGL Shading Language 4.6; 5.8. Assignments; page 114
使用赋值运算符(
=
)对变量名称进行值赋值:lvalue-expression = rvalue-expression
左值表达式的计算结果为 l值。 赋值运算符将 r-value-expression 的值存储到 l-value 中,并返回 r-value 的类型和精度为 lvalue-expression 。
在glsl中,没有什么比指针或引用甚至“移动”赋值更重要了。值始终会被复制。