В третьей строке все, что вы сделали, это объявили функцию sum
, которая принимает два параметра, оба целых числа, называемые x
и y
. Вы не объявили никаких переменных . На эти параметры можно ссылаться только внутри самой функции. Ниже приведено упрощение, которое поможет вам на данном этапе, но вы должны попытаться прочитать основную книгу по программированию. «Язык программирования Си» Кернигана и Ричи - прекрасное место для начала.
Переменные - это фрагменты памяти, на которые вы ссылаетесь по имени. Они могут принимать любое значение (своего типа) в течение жизни вашей программы - отсюда и название «переменная». Они должны быть объявлены, прежде чем использовать их; Вы делаете это, сообщая компилятору их тип и имя. int a
означает «зарезервируйте мне блок памяти, достаточно большой, чтобы вместить любое целое число, и позвольте мне обратиться к нему позже с именем a
». Вы можете присвоить ему значения: a = 10
и использовать его: a + 20
.
Вы должны понимать разницу между параметрами и переменными, чтобы понять, что здесь происходит. Параметры функции в основном являются переменными, которые существуют только в течение срока службы этой функции. Вот ваш sum
снова:
int sum(int x, int y) {
return x + y;
}
Обратите внимание, как выглядит верхняя строка, как объявление переменной int x
. Это потому что это так. x
и y
- переменные, которые вы можете использовать в функции.
Вы вызываете sum
, передавая значения. Компилятор, по сути, заменяет x
и y
в вашей функции на значения, которые вы передаете. В вашем случае вы передаете литерал : 10 и 11. Когда программа достигает вызова sum
, параметры x
и y
принимают значения 10 и 11, поэтому возвращаемое значение становится return 10 + 11;
, что, конечно, равно 21.
Просто помните, что параметры x
и y
существуют только в этой функции. Вы можете ссылаться на них только в рамках своей функции. Зачем? Поскольку каждая пара фигурных скобок {
и }
определяет scope , и все, что объявлено в этой области, может использоваться только в этой области. Это включает в себя переменные и параметры.
Итак, вот более полный пример. Я изменил буквы, чтобы вы могли видеть различные способы использования переменных и параметров:
#include <stdio.h>
int sum ( int x, int y );
main ()
{
/* We declare our variables */
int a;
int b;
/* We assign values to them */
a = 10;
b = 11;
/* We pass them as parameters to your sum function */
int theSum = sum (a, b);
/* And we use them as parameters again, in a call to the printf function */
printf ( "Sum of %i and %i is: %i\n", a, b, theSum );
}
int sum ( int x, int y )
{
return x + y;
}