对于初学者来说,for循环中有一个错字
for (int i = 0; i < num; i++) {
变量num未声明。看来你的意思
for (int i = 0; i < n; i++) {
函数声明应放在其调用之前。
用限定符 const 声明参数没有什么意义。
void exampleFunc(int const n);
这两个函数声明
void exampleFunc(int const n);
和
void exampleFunc(int n);
声明相同的一个函数。
这个函数内的数组声明
int arr[n];
如果您的编译器支持可变长度数组,它将是有效的。否则编译器将发出错误,数组的大小应为整数常量表达式。
可变长度数组应具有自动存储持续时间。因此,即使您的编译器支持可变长度数组,您也不能在任何函数之外声明它们,例如
const int n = 10;
int a[n];
int main( void )
{
//...
}
此外,您可能不会在其声明中初始化可变长度数组。
这是一个使用可变长度数组的演示程序。
#include <stdio.h>
void display_pattern( size_t n )
{
for ( size_t i = 0; i < n; i++ )
{
int a[i+1];
for ( size_t j = 0; j < i + 1; j++ ) a[j] = ( i + j ) % n;
for ( size_t j = 0; j < i + 1; j++ ) printf( "%d ", a[j] );
putchar( '\n' );
}
}
int main(void)
{
display_pattern( 10 );
return 0;
}
程序输出为
0
1 2
2 3 4
3 4 5 6
4 5 6 7 8
5 6 7 8 9 0
6 7 8 9 0 1 2
7 8 9 0 1 2 3 4
8 9 0 1 2 3 4 5 6
9 0 1 2 3 4 5 6 7 8