что означает

#c

Вопрос:

Это пример проблемы, демонстрирующей использование ссылок в c . я новичок, и это мой первый раз, когда я узнаю о ссылках. я не понимаю, почему мы используем amp;fun() . что это значит?

 #include<iostream>
using namespace std;

    int amp;fun(){
        static int x = 10;
        return x;
    }
    
    int main(){
        int amp;y=fun();
        y = 20;
        cout<<fun();
    }
 

выход : 20

Комментарии:

1. fun является функцией, которая возвращает int amp; (ссылка на int ). Вы возвращаете ссылку на статическую переменную x , и она назначается y . y = 20 изменения x , и это можно увидеть, когда вы cout<<fun() .

2. int amp; вместо int означает, что функция возвращает ссылку на int вместо простого int .

3. Пробелы на самом деле не имеют значения для синтаксического анализатора. int amp;fun() , intamp; fun() , int amp; fun() , все они означают одно и то же — функцию fun() , которая возвращает intamp; ссылку.

4. По теме: цитирование вне контекста . Та же проблема относится и к вашему вопросу. Если вы цитируете только часть английского предложения, вы рискуете пропустить ключевые слова, которые влияют на значение. Если вы сосредоточитесь только на части строки (хорошо отформатированного) кода на C , вы рискуете пропустить символы, которые влияют на значение. 😉

Ответ №1:

Эквивалентный синтаксис таков intamp; fun() . Таким образом, эта функция возвращает ссылку на » x » (то есть статическую), поэтому позже в main вы можете изменить ее ( y = 20 действительно изменить x внутреннюю часть функции). Таким образом, еще один вызов возвращает 20, так как x он был изменен.

Комментарии:

1. что произойдет, если я не буду использовать amp; int amp;fun() его ?

Ответ №2:

int amp; средство fun() возвращает ссылку на an int . В main() , эта ссылка присваивается y , и значение y изменяется на 20, также изменяя значение x на 20.