Почему я получаю анамольное поведение при печати элементов массива - PullRequest
0 голосов
/ 16 июня 2019

Я получаю неожиданный результат при выполнении кода. Как я и ожидал, этот код печатает элементы массива как есть. Но я получаю разные результаты для первых 4 элементов. Почему это так?

#include<stdio.h>
void main()
{ int i,a[8]={000,001,010,011,100,101,110,111};
  for(i=0;i<8;i++)
  printf("%d",a[i]);
}

Ответы [ 2 ]

3 голосов
/ 16 июня 2019

Целочисленные константы , начинающиеся с цифры 0: восьмеричные (основание 8). Литералы 010 и 011 являются значениями 8 и 9.

0 голосов
/ 16 июня 2019

Укажите восьмеричный вывод с "%o" (не "%d")

printf("%o %03o\n", 9, 9); // 11 011

См. ideone.com / Yy5yNA

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