小编leg*_*s2k的帖子

在编译时引用const值 - 什么时候const的定义真的可用?

我试过了

const int i[] = { 1, 2, 3, 4 };
float f[i[3]]; // g++ cries "error: array bound is not an integer constant"

int main()
{
   const int j[] = { 0, 1, 2, 3 };
   float g[j[3]];                   // compiler is happy :)

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

这两个聚合有什么区别?为什么在main()中引用const聚合的元素在全局范围内无效时是有效的?

c++ scope const definition

1
推荐指数
1
解决办法
250
查看次数

C++函数采用值,它们应该在哪里引用

我只是在学习c ++,而且来自c,我在书中看到的一些函数调用让我很困惑:

char a;
cin.get(a);
Run Code Online (Sandbox Code Playgroud)

在C中,这可能不起作用,如果你这样做,就没有办法获得输出,因为你是通过值传递而不是通过引用,为什么这在c ++中工作?引用和去除是隐式的(编译器知道cin.get需要一个指针,所以它被引用)?

c++ pointers reference pass-by-reference pass-by-value

1
推荐指数
1
解决办法
220
查看次数

什么glm :: normalize呢?

我试图用C++源代码编写一个用Java编写的MD5加载器,但我不知道这行是做什么的:

animatedJoint.m_Orient = glm::normalize(animatedJoint.m_Orient);
Run Code Online (Sandbox Code Playgroud)

其中animatedJoint.m_Orientvec4.它有什么作用?

math 3d linear-algebra glm-math

1
推荐指数
3
解决办法
1万
查看次数

初始化C++向量的"最佳"方法是什么?

我的问题是这里的C++纯粹主义者.我知道Bjarne Stroustrop希望我们养成使用C++载体的习惯:http://www.youtube.com/watch?v = YQs6IC-vgmo

对于C风格的数组,您可以:

int arr[] = {69, 2, 3};
Run Code Online (Sandbox Code Playgroud)

初始化C++向量的等效方法是什么?也就是说,当您使用C++进行编程并需要一个动态的随机访问容器并且您已经知道其中需要包含的一些元素时,初始化该sucker的最佳方法是什么?

显然你可以做到

int myints[] = {16,2,77,29};
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) )
Run Code Online (Sandbox Code Playgroud)

但那不是很优雅......

c++ arrays vector

1
推荐指数
1
解决办法
165
查看次数

SFML :: View倒y轴标准?如何解决它?

我使用右手坐标(x =右,y =向上)将我的物体放在世界空间中.

当我必须使用SFML渲染它们时,我遇到了问题,因为我无法在sf :: View中使用(y = up)矩阵设置View矩阵,然后全部渲染y-flipped.

我正在考虑的一个解决方案是在渲染之前在每个对象上翻转y轴:

ObjectTransformMatrix * MatrixScale(1.0f,-1.0f)
Run Code Online (Sandbox Code Playgroud)

但我想我必须将sf :: View中心移动到:

y = y - (view_size.y / 2.0)
Run Code Online (Sandbox Code Playgroud)

为什么sf :: View是y-inverted?我的解决方案是否正确

opengl graphics 2d viewport sfml

1
推荐指数
1
解决办法
1775
查看次数

此输出有效还是编译器错误?

#include <iostream>
#include <string>

int main(int argc, char *argv[])
{
    std::string s = {123};
    std::cout << s << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

为什么这个程序打印{为输出?它只是打印前面的词法分析器中的错误{吗?

我用g ++ 4.8.1编译了这个(没有错误或警告).MSVC不会编译这种string不是聚合类型的抱怨.

c++ initializer-list c++11

0
推荐指数
1
解决办法
104
查看次数

C编程中对字符串的困惑

所以我正在学习使用编译器Dev C++编程c.问题1:

#include <stdio.h> 
#include <conio.h> //for the getch() function
#include <string.h> 

int main(void) 
{ 
    char line[3]; 
    strcpy(line, "Hello world"); 
    printf("%s", line); 
    getch(); 
} 
Run Code Online (Sandbox Code Playgroud)

输出:Hello world

为什么当我声明我的字符串只能容纳3个字符时,它会显示所有"Hello world"?

问题2:

char line[3] = "Hello world"; 
printf("%s", line); 
Run Code Online (Sandbox Code Playgroud)

输出:Hel

为什么显示"Hel"?它不应该只显示"He",因为行[0] = H,行[1] = e和行[2] ='\ 0'?%s通过搜索'\ 0'来工作?

请帮我理解真正发生的事情.谢谢!

c printf c-strings string-literals array-initialization

0
推荐指数
1
解决办法
341
查看次数

如何在C中创建具有不同列的二维数组?

在Python中我可以拥有数据:

lst = [[1,2,3],[2,3],[1,2,3,4]]

然后由lst [i] [j]访问.

我怎样才能在C中实现这一点?

c python

0
推荐指数
1
解决办法
59
查看次数