Вопрос новичка) Как я могу навсегда изменить тип переменной? - PullRequest
0 голосов
/ 16 марта 2019

Я обнаружил, что

char p = 1; 
p = (int)p; 
p = 0x12345678;

составляет p '0x78', потому что тип p не изменяется на int во второй строке, в отличие от моего предположения.Как я могу изменить сам тип p, не объявляя новую переменную?

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Объекты имеют свои типы навсегда на языке Си. Вместо этого вы часто можете cast его значение для другого типа. В вашем примере (int)p значение p преобразуется в int, но исходная переменная p будет иметь тот же тип.

0 голосов
/ 16 марта 2019

Переключитесь на другое имя переменной с нужным типом.

char p = 1; 
int q = (int)p; 
q = 0x12345678;

Нет другого обходного пути, о котором я знаю.

В качестве примечания, если вы хотитеобеспечить переносимость, будьте осторожны, когда вы приводите символы к целым числам или наоборот.Стандарт C дает гарантию того, что, например, от «0» до «9» будет последовательным и увеличивающимся, но не дает никаких гарантий относительно их значений.

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