我在以下程序中遇到错误.我无法弄清楚为什么我无法在数组中存储值
main()
{
int A[10];
A = {3,1,2,3,4,1,5,8,9,0};
printArr(A,10);
printf("\n");
BubbleSort(A,10);
printArr(A,10);
printf("\n----------------Bubble Sort Efficiently ---------------------\n");
printf("\n");
A = {3,1,2,3,4,1,5,8,9,0};
BubbleSortEfficient(A,10);
printArr(A,10);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
73: error: expected expression before ‘{’ token
80: error: expected expression before ‘{’ token
Run Code Online (Sandbox Code Playgroud)
请澄清为什么我无法存储数组元素.
ANSI C没有用于在数组初始值设定项之外定义数组聚合的语法.如果将初始化与赋值(技术上不是赋值,但是初始化的一部分)结合起来,则代码将编译:
int A[10] = {3,1,2,3,4,1,5,8,9,0};
Run Code Online (Sandbox Code Playgroud)
由于您无法重新分配数组,因此在第二次调用之前程序的部分BubbleSortEfficient应如下所示:
int B[10] = {3,1,2,3,4,1,5,8,9,0};
BubbleSortEfficient(B, 10);
printArr(B, 10);
Run Code Online (Sandbox Code Playgroud)
编辑:(响应Keith Thompson的评论)C99引入了数组聚合表达式,但它们不能分配给数组,因为标准没有数组赋值.
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |