我试过了
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 ++,而且来自c,我在书中看到的一些函数调用让我很困惑:
char a;
cin.get(a);
Run Code Online (Sandbox Code Playgroud)
在C中,这可能不起作用,如果你这样做,就没有办法获得输出,因为你是通过值传递而不是通过引用,为什么这在c ++中工作?引用和去除是隐式的(编译器知道cin.get需要一个指针,所以它被引用)?
我试图用C++源代码编写一个用Java编写的MD5加载器,但我不知道这行是做什么的:
animatedJoint.m_Orient = glm::normalize(animatedJoint.m_Orient);
Run Code Online (Sandbox Code Playgroud)
其中animatedJoint.m_Orient为vec4.它有什么作用?
我的问题是这里的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)
但那不是很优雅......
我使用右手坐标(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?我的解决方案是否正确
#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不是聚合类型的抱怨.
所以我正在学习使用编译器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'来工作?
请帮我理解真正发生的事情.谢谢!
在Python中我可以拥有数据:
lst = [[1,2,3],[2,3],[1,2,3,4]]
然后由lst [i] [j]访问.
我怎样才能在C中实现这一点?