#include <stdio.h>
int main(void) {
int arr[10];
arr = "Hello";
printf("%s",arr);
return 0;
}
Приведенный выше код показывает ошибку компилятора:Почему я получаю сообщение: «Ошибка: присваивание выражения с типом массива»
t.c: In function ‘main’:
t.c:5:9: error: assignment to expression with array type
arr = "Hello";
^
t.c:6:12: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int *’ [-Wformat=]
printf("%s",arr);
^
В то время как ниже код работает отлично.
#include <stdio.h>
int main(void) {
char arr[10] = "Hello";
printf("%s",arr);
return 0;
}
Оба выглядят одинаково для меня. Что мне здесь не хватает?
Int обр [10] = { 'H', 'е', 'л', 'л', 'о', 0, 0, 0, 0, 0}; – clearlight
char * arr = "Hello"; – clearlight
char arr [] = "Hello"; – clearlight