C++中的数组运用
C++中的数组使用
我在gcc中实验过,下面的代码是可以通过的:
这里面采用const来定义一个常量,但是常量的值来自一个变量。这样是不是有点C++中的动态申请数组的意思?
C++中对于这种情况是如何处理的?和固定的int a[20][20]数组的处理一样吗?、
------解决方案--------------------
这个是C99里面的,VS系列编译器没有提供这样的功能。和固定的有点区别。因为这个数组的大小是要到运行的时候才能确定的。但是,这个有点不安全。如果你把值赋错了就完蛋了
------解决方案--------------------
我在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系列编译器没有提供这样的功能。和固定的有点区别。因为这个数组的大小是要到运行的时候才能确定的。但是,这个有点不安全。如果你把值赋错了就完蛋了
------解决方案--------------------