Почему меняется значение
#include<stdio.h> #include<conio.h> void main() { int a=16,b=012,c=054; printf("a=%d b=%d c=%d",a,b,c); }
Что я уже пробовал:
почему выходные данные изменяются, что такое преобразование...
#include<stdio.h> #include<conio.h> void main() { int a=16,b=012,c=054; printf("a=%d b=%d c=%d",a,b,c); }
Когда вы ставите перед числом префикс 0 в C, он предполагает, что число, которое вы вводите, не является длинным в десятичной системе счисления (база 10, та, которую мы обычно используем в реальном мире), а вместо этого в восьмеричной системе счисления (база 8, она работает 0, 1, ... 7, 10, 11, ... 17, 20, 21, ...)
Итак, это:
int a=16,b=012,c=054;Создает три переменные и присваивает им значения:
a 16 deciml, value 16 b 012 octal, value 10 in decimal c 054 octal, value 44 in decimal
5.