muszę analizować dane wyjściowe tych fragmentów kodu:Praktyczna różnica między int i char
int x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);
char x, y;
x = 200; y = 100;
x = x+y; y = x-y; x = x-y;
printf ("%d %d\n", x, y);
Tak, wiem, że int
Stojaki do liczby całkowitej i char
o charakterze; Przeczytałem o różnicach i jeśli wstawię printf
%d
, zwróci on w formie cyfr i %c
, w postaci znaku.
Kod znaków ASCII dla 'A'
wynosi na przykład 65, ale dlaczego druga funkcja drukuje 100 -56
, zamiast 100 200
?
Twój 'char' nie jest podpisany przez domyślny. W ten sposób się otacza. –
Symbol C ma 8 bitów, więc 127 jest największą liczbą dodatnią, jaką możesz mieć. –
Aby opracować, może być podpisane lub niepodpisane, a który 'char' sam jest różny w zależności od implementacji. Musisz użyć określonego typu, jeśli chcesz tego przy każdej implementacji. Inne typy, takie jak "int", domyślnie "podpisane". – chris