我是 C 编程新手,我需要使用二维整数数组(矩阵)。例如,我这样做:
void main(){
int matrix[2][2] = { {0,1}, {2,3} };
printf("%i", matrix[4][4]); /*Here should be an index error, but that doesn't happen*/
}
出了什么问题?
最佳答案
What is wrong?
错误的是您对编译器和/或语言的假设。 C 没有边界检查。如果您访问越界数组,编译器不会警告您。
相反会发生什么:您的代码现在无效,据说会调用未定义的行为,并且它可以自由地做任何它想做的事情(包括崩溃或看似“工作正常”)。
关于c - C 中的二维数组索引怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068624/