Varför kompilatorn ger varning när jag skriver "int t1, t2 ??
#include <stdio.h>
#define SIZE 5
int main (void) {
int t1, t2; Varför kompilatorn ger varning när jag skriver denna raden??
int t1[SIZE] = {1, 2, 4, 5, 6,};
int t2[SIZE] = {0, 3, 4, 1, 9};
int res[SIZE];
for ( int i = 0; i < 5; i++)
{
res[i] = t1[i] + t2[i];
printf("res[%d] = %d \n" i, res[i]);
}
}
Den säger:
ov6-6.c: In function 'main':
ov6-6.c:7:6: error: conflicting types for 't1'
7 | int t1[SIZE] = {1, 2, 4, 5, 6,};
| ^~
ov6-6.c:5:6: note: previous declaration of 't1' was here
5 | int t1, t2;
| ^~
ov6-6.c:8:6: error: conflicting types for 't2'
8 | int t2[SIZE] = {0, 3, 4, 1, 9};
| ^~
ov6-6.c:5:10: note: previous declaration of 't2' was here
5 | int t1, t2;
| ^~
Du har deklarerat samma variabler två ggr.
Dels som vanlig int
och dels int arrays
Aha ok!
Så int t1, t2; betyder att t1 och t2 har typen heltal. Medans int t1[] och int t2[] säger att fälterna t1 samt t2 är av typen int
Eller?
Elementen i arrayen (fältet?) är av typen int, ja.
Lägg märke till att kompilatorn klagar på rad 6, inte på rad 5 som du har skrivit.