Почему назначение char работает, но целое нет (возможно, причина char рассматривается как массив)?
blockquote>Вы правы,
"Something"
является строковым литералом и может рассматриваться как массив символов. Послеchar *myChar = "Something";
происходит следующее: выделяется длина + 1 байт памяти, где"Something"
будет сохранена,myChar
указывается на начальный адрес этой памяти. Строковые литералы несколько особенны.Вот общий способ инициализации массива с постоянными значениями:
// valid initializations; char s2[] = { 'a', 'b', 'c' }; int a[] = { 1, 2, 3 }; char s1[] = "123";
Также меня смущает, когда напрямую назначается указательная переменная, автоматически получает адрес?
blockquote>Да.
Взгляните на 8.5.2. Массивы символов c ++ docs