我收到一个错误,上面写着:“声明说明符中有两个或更多数据类型”
我读过,当人们忘记把“;”放在结构的末尾时,就会发生这种情况,但正如你所见,它有“;”。那么,有人知道是什么导致了这个错误吗?
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char valorArray;
} arrayStruct;
int main(void){
arrayStruct char array[10];
int i;
int *pA;
int *pP;
for (i = 0; i < 10; i++){
printf("Digite uma letra qualquer:\n");
scanf("%c", &(array[i].valorArray));
scanf("\n");
printf("a letra na casa %d do array eh: %c\n", i, array[i].valorArray);
pA = &array[i].valorArray;
printf("o endereco da posicao atual eh: %d\n", pA);
pP = &array[i+1].valorArray;
printf("o endereco da proxima posicao eh: %d\n\n\n\n", pP);
}
system("PAUSE");
return 0;
}
最佳答案
需要做以下更改。
arrayStruct char array[10];
更改为,因为arrayStruct是用户定义的数据类型:
arrayStruct array[10]; // example int arr[10] - int is a data type.
我认为应该做的另一个逻辑改变是:
int *pA; // change to char *pA
int *pP; // change to char *pB
pA = &array[i].valorArray;
printf("o endereco da posicao atual eh: %d\n", pA);
pP = &array[i+1].valorArray;
printf("o endereco da proxima posicao eh: %d\n\n\n\n", pP);
您使用char数据类型定义了valorary,因此pA和pP应该是char*而不是int*。
希望这有帮助。