Deita
@Deita

Значение переменной в двойных кавычках?

Что с точки зрения Си означает создать переменную с целым числом в двойных кавычках? =)

#include <stdio.h>
  int main() {
    int x = "15";
    printf("%d", x);
    return 0;
}


4210688 что такое, какойто мусор из памяти, или юникод код
  • Вопрос задан
  • 139 просмотров
Решения вопроса 2
CityCat4
@CityCat4
//COPY01 EXEC PGM=IEBGENER
gcc test.c -o test
test.c: In function ‘main’:
test.c:3:13: warning: initialization of ‘int’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
    3 |     int x = "15";
      |             ^~~~


то есть сначала компилер обьявляет строковую константу "15" (два символа - 0x31 и 0x35), потом присваивает адрес этой константы в переменную и обнаруживает, что переменная типа int и соответственно нормальное присваивание невозможно.
Ответ написан
Комментировать
GavriKos
@GavriKos
Означает что надо оторвать руки написавшему.
Вообще нормальный плюсовый компилятор это не скомпилит без приведения типов.

Сишный компилятор скомпилит, и если я правильно понимаю - это будет адрес константной строки "15" в памяти. Каждый раз рандомный.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы