您的位置:首页 > 编程语言 > C语言/C++

C语言 变量数组只能在头部定义

2017-11-04 17:10 369 查看
今天写了点代码,一直也没看出什么错。突然想打C语言变量要在头部一起定义了。把下面的数组定义放到头部就行了。真鸡儿不方便。。。

#include<stdio.h>
void arymul(int* a, int* b, int* c,int row,int cols,int end);
int sum(int* array,int length);
int main()
{

int A[2][2]= {{1,2},
{3,4}};

int B[2][3]= {{2,2,2},
{2,2,2}};
int C[2][3];
int i,j;

int a[5] = {0,1,2,4,5};//变量,数组定义要放在可执行语句之前

arymul((int*)A,(int*)B,(int*)C,2,2,3);
for(i=0; i<2; i++)
{
for(j=0; j<3; j++)
{
printf("%-4d",C[i][j]);
}
printf("\n");
}
//int a[3] = {0,1,2,4,5};//这里一直报错:error C2143: syntax error : missing ';' before 'type'
printf("%d\n",sum((int*)a,5));
return 0;
}
void arymul(int* a, int* b, int* c,int row,int cols,int end)
{
int i, j, k;
int temp;
for(i = 0; i < row; i++)
{
for(j = 0; j < end; j++)
{
temp = 0;
for(k = 0; k < cols; k++)
{
//				temp+= a[i][k]*b[k][j];
//A[row][cols]*B[cols][end]
temp+=*(a+i*cols+k)*(*(b+k*end+j));
} // c[i][j] = temp;
*(c+i*end+j)=temp;
}
}
}
//对一维矩阵做加法
int sum(int* array,int length)
{
int i;
int sum=0;
for(i=0;i<length;i++)
{
sum+=*(array+i);
}
return sum;
}

把上面的数组定义,放到头部就行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: