в чем разница между "\ x" в
начало символа до 0x в
начало символа
Разница в том, что 0x12 используется для указания целого числа в шестнадцатеричном формате, в то время как "\ x" используется для строковых литералов . Пример:
#include <stdio.h>
int main(){
int ten = 0xA;
char* tenString = "1\x30";
printf("ten as integer: %d\n", ten);
printf("ten as string: %s\n", tenString);
return 0;
}
Printf должен оба вывести «10» (попытайтесь понять, почему).
при приведении char к (unsigned), а не
(без знака) - что это значит?
почему (без знака) '\ xFF'! = 0xFF?
"unsigned" - это просто сокращение от "unsigned int". Таким образом, вы переводите с char на int. Это даст вам числовое представление символа в наборе символов, используемом вашей платформой. Обратите внимание, что значение, которое вы получаете для символа, зависит от платформы (обычно в зависимости от кодировки символов по умолчанию). Для символов ASCII вы (обычно) получите код ASCII, но все, что находится за его пределами, будет зависеть от платформы и конфигурации среды выполнения.
Понимание того, что делает приведение от одного типа к другому, очень сложно (и часто, хотя и не всегда, зависит от платформы), поэтому избегайте его, если можете. Иногда это необходимо, хотя. Смотрите, например потребность-некоторые-осветление-о-отливка-в-с