Может кто-нибудь помочь мне найти, что на выходе ??это в C ++ - PullRequest
1 голос
/ 21 марта 2011

Может кто-нибудь помочь мне найти выход?это в C ++ ... homwork

Переменной x, определенной в вашей программе глобально, присваивается целочисленное значение 3. Переменной x, определенной в функции с именем f_name, присваивается целое значение 5. После просмотра ответав следующем коде.

1  #include <iostream>
2  using namespace std;
3  int f_name(int y);
4 
5  int x = 3;
6  
7  int main()
8  {
9   cout << x;
10  cout << f_name(x);
11  return 0;
12 }
13   
14 int f_name(int y)
15 {
16  int x = 5;
17  return (x + y);
18 }


  What is the output of line 9? _________ line 10? _______________

Ответы [ 2 ]

2 голосов
/ 21 марта 2011

3 и 8. Нет?

В строке 9 cout << x; выводится значение глобального x, т. Е. 3. В строке 17

 return (x + y );  // outputs 8

x относится к локальному x, тогда как значение y равно глобальному x значению, поскольку оно передается в качестве аргумента функции.

2 голосов
/ 21 марта 2011

строка 9 = 3
строка 10 = 8 - это выходы.

В строке 9 просто печатается значение глобальной переменной x . В строке 10 просто передаём значение x в f_name (iny y). Что означает значение y в этой области действия: 3 . Добавление этого к локальной переменной x дает 8 , которую возвращает функция.


Я думаю, у вас проблемы с пониманием объема переменных. Чтобы понять это, с точки зрения этой программы, есть два вида переменных -

  1. Локальные переменные
  2. Глобальные переменные

Локальные переменные - это переменные, которые имеют локальную область видимости и доступны только в тех функциях, в которых они объявлены.

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

int main() 
{
  cout << x;   // x here is the global variable. Because, in main, there is no variable 
               // called x declared. So it prints 3
  cout << f_name(x); // Here you are passing the value of global variable x, which is 3
  return 0;
}

int f_name(int y) // The passed value ( i.e., 3 ) is copied to y. 
{
  int x = 5;
  return (x + y);  // Here you are not accessing global variable x. Because, there 
                   // is a local variable declared called x and initialize with value 5
                   // Now (5+3) = 8, which is returned.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...