R: Отслеживание химиотерапии, взятия и сброса (используя накопление, уменьшение или какой-либо другой подход)

"Something"

по существу является коротким для:

static const char some_hidden_array[] = {'S', 'o', 'm', 'e', 't', 'h', 'i', 'n', 'g', '\0'};
some_hidden_array

То есть, когда вы пишете "Something", компилятор генерирует массив за кулисами и дает вам указатель на начало этого массив. Поскольку это уже указатель на символ, вам не составит никакого труда назначить его переменной «указатель на символ» (написанной как char*).

10

- not для чего-либо подобного. Это всего лишь номер 10 - это не указатель на массив, содержащий число 10, или что-то в этом роде.

Обратите внимание, что char является единственным символом , а не string, поэтому синтаксис строки необычен по сравнению с большинством других типов - строка несколько символов, а не только одна. Если вы попытаетесь использовать простой старый char, вы увидите то же самое:

char *myChar = 'a'; // error

или для любого другого типа:

float *myFloat = 42.1f; // error

Другими словами, это не странно, что 10 дает ошибку - во всяком случае, странно, что "Something" не . (По крайней мере, это странно, пока вы не знаете, как работают строковые литералы)

0
задан Paul 15 January 2019 в 15:56
поделиться