首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中的数组运用

2012-09-12 
C++中的数组使用我在gcc中实验过,下面的代码是可以通过的:C/C++ code#include iostream#include iomani

C++中的数组使用
我在gcc中实验过,下面的代码是可以通过的:

C/C++ code
#include <iostream>#include <iomanip>using namespace std;void zigzag(int n){    const int N=n;    int a[N][N];    int squa=N*N;    int b[N*N][2];    for(int i=0;i<N;i++)        for(int j=0;j<N;j++){            int s=i+j;            if(s<N) {                a[i][j]=s*(s+1)/2+((i+j)%2==0?j:i);            }            else{                s=(N-1-i)+(N-1-j);                a[i][j]=squa-s*(s+1)/2-(N-((i+j)%2==0?j:i));            }            b[a[i][j]][0]=i;            b[a[i][j]][1]=j;        }    for(int i=0;i<N;i++){        for(int j=0;j<N;j++)            cout<<setw(2)<<a[i][j]<<" ";        cout<<endl;    }    for(int i=0;i<N*N;i++) {        for(int j=0;j<2;j++)            cout<<setw(2)<<b[i][j]<<' ';        cout<<endl;    }}int main(){    int n=4;    zigzag(n);}

这里面采用const来定义一个常量,但是常量的值来自一个变量。这样是不是有点C++中的动态申请数组的意思?
C++中对于这种情况是如何处理的?和固定的int a[20][20]数组的处理一样吗?、



[解决办法]
这个是C99里面的,VS系列编译器没有提供这样的功能。和固定的有点区别。因为这个数组的大小是要到运行的时候才能确定的。但是,这个有点不安全。如果你把值赋错了就完蛋了
[解决办法]
探讨

引用:

这个是C99里面的,VS系列编译器没有提供这样的功能。和固定的有点区别。因为这个数组的大小是要到运行的时候才能确定的。但是,这个有点不安全。如果你把值赋错了就完蛋了

恩,对,我在VS上试了一下,无法编译通过。

热点排行