Сообщения об ошибках мне не понятны - PullRequest
2 голосов
/ 22 августа 2010
char name[10]="James";  //valid statement

char name[10];
strcpy(name,"james");   //valid statement

char name[10];
name[10]="james";       //invalid statement
*name="james";          // invalid statement

Для вышеупомянутой неверной оценки написано "ошибка: назначение делает целое число из указателя без преобразования"

Сообщение об ошибке не ясно.Что здесь целое число?Какой указатель преобразуется в целое число.

char name[10];
name="james";   //invalid statement

ошибка: несовместимые типы при назначении типу char [10] типа char

Пожалуйста, объясните сообщение об ошибке длямне.Что именно они имеют в виду.

1 Ответ

2 голосов
/ 22 августа 2010

Проблема здесь:

name[10]="james";

name [10] в этом контексте является символом (который является типом целого числа), в то время как "james" является указателем (обуглить).Итак, вы пытаетесь преобразовать указатель на символ, что является недопустимым преобразованием.

Обратите внимание, что когда вы пишете:

char name[10];, вы определяете массив символов из size 10.

Когда вы пишете просто:

name[10]

вы имеете в виду элемент индекса 10 имени, то есть 11-й символ в имени(что на самом деле выходит за пределы - действительные индексы в name равны name[0] .. name[9]).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...