Подтвердить что ты не робот

Как печатать на C

Очень новичок в c, на самом деле это моя первая программа тестера.

Я не могу понять, как распечатать этот номер на терминал.

#include <stdio.h>

int addNumbers(int a, int b)
{
    int sum = a + b;
    return sum;
}

int main(void)
{
    int a = 4;
    int b = 7;

    printf(addNumbers(a,b));
    return 0;
}

Я уверен, что в java я мог бы просто заменить printf на system.out, и это сработало бы. Я попытался найти ответ раньше, но если вы не знаете, что искать, трудно найти ответ.

4b9b3361

Ответ 2

Первый аргумент printf() всегда является строковым значением, известным как строка управления форматом. Эта строка может быть регулярным текстом, например

printf("Hello, World\n"); // \n indicates a newline character

или

char greeting[] = "Hello, World\n";
printf(greeting);

Эта строка может также содержать один или несколько спецификаторов преобразования; эти спецификаторы преобразования указывают, что дополнительные аргументы были переданы в printf(), и они определяют способ форматирования этих аргументов для вывода. Например, я могу изменить сказанное выше на

char greeting[] = "Hello, World";
printf("%s\n", greeting);

Спецификатор преобразования "% s" ожидает указатель на строку с завершением 0 и форматирует ее как текст.

Для подписанного десятичного целочисленного вывода используйте либо спецификаторы преобразования% d или "% i", например

printf("%d\n", addNumber(a,b));

Вы можете перемешать обычный текст с помощью спецификаторов преобразования, например:

printf("The result of addNumber(%d, %d) is %d\n", a, b, addNumber(a,b));

Обратите внимание, что спецификаторы преобразования в строке управления указывают количество и типы дополнительных параметров. Если число или типы дополнительных аргументов, переданных в printf(), не соответствуют спецификаторам преобразования в строке формата, то поведение undefined. Например:

printf("The result of addNumber(%d, %d) is %d\n", addNumber(a,b));

приведет к чему-либо от искаженного вывода до полного сбоя.

Существует ряд дополнительных флагов для спецификаторов преобразования, которые управляют шириной поля, точностью, дополнением, обоснованием и типами. Проверьте свое удобное справочное руководство по C для полного списка.

Ответ 3

printf является более сложным, чем это. Вы должны указать строку формата, а затем переменные, применяемые к строке формата. Если вы просто поставьте одну переменную, C предположим, что это строка формата, и попытайтесь распечатать все найденные в ней байты, пока не достигнет конечного nul (0x0).

Итак, если вы просто дадите ему целое число, он будет весело маршировать через память в месте, где хранится ваше целое, сбрасывая все, что угодно, на экран, до тех пор, пока он не встретит байт, содержащий 0.

Для программиста на Java я бы предположил, что это довольно грубое введение в C отсутствие проверки типов. Поверьте, это только верхушка айсберга. Вот почему, в то время как я приветствую ваше желание расширить свои горизонты, изучая C, я настоятельно рекомендую вам делать все возможное, чтобы избежать написания реальных программ в нем.

(Это делается для всех остальных, читающих это тоже.)