> Java > java지도 시간 > C++ 참조 및 포인터 소개

C++ 참조 및 포인터 소개

坏嘻嘻
풀어 주다: 2018-09-14 17:06:07
원래의
1783명이 탐색했습니다.

Python 및 JavaScript와 같은 고급 언어와 마찬가지로 PHP도 C/C++를 통해 확장 기능을 작성할 수 있습니다. 여기에서는 간단한 PHP 확장을 구축하는 방법과 타사 DLL 라이브러리를 호출하는 방법을 공유합니다.

  1. c 언어 포인터
    포인터는 나를 수천 번 괴롭혔습니다. 처음 포인터를 배우기 시작했을 때 매우 혼란스러웠습니다. 이제 포인터 지식이 중개인 역할을 하는 것 같습니다. 메모리 관점에서는 포인터 공간을 사용합니다. 데이터가 저장되는 주소입니다.

#include<stdio.h>void  add_1(int num)
{
    num++;
}

void add_2(int *num)
{
    (*num)++;
}int main()
{    int number1 = 1,number2 = 1 ; 
    add_1(number1);
    add_2(&number2);    printf("%d\n",number1);    printf("%d\n",number2);    return 0;
}
로그인 후 복사


C++ 참조 및 포인터 소개

number1의 값은 변경되지 않고, number2는 1씩 증가합니다. add_1()에 매개변수를 전달하는 것은 공백을 여는 것과 같습니다number1의 값이 공백에 복사되고, 복사된 값 수행된 모든 작업은 원본 데이터에 영향을 주지 않습니다. add_2()에 전달된 매개변수는 number2의 주소를 저장할 공간을 여는 것입니다. num에 대한 모든 연산은 number2에 대한 연산과 같습니다.

    c++ 명언
  1. 아래 코드는 위 코드와 거의 동일하며 몇 가지 기호만 수정했을 뿐 효과는 동일합니다.


    #include<iostream>using namespace std;void add_1(int num)
    {
        num++;
    }void add_2(int &num)
    {
        num++;
    }int main()
    {    int number1 = 0, number2 = 0;
        add_1(number1);
        add_2(number2);    cout << number1 << "  " << number2 << endl;    return 0;
    }
    로그인 후 복사
C++ 참조는

2번의 별칭C++ 참조 및 포인터 소개입니다. 실제로 메모리에 저장되는 것은 여전히 ​​2번 메모리 주소이지만 컴파일러는 제가 컴퓨터 과학에 대해 이해한 것과 마찬가지로 몇 가지 최적화 및 제한 사항을 적용했습니다. 구성 방법은 서로 다른 컴퓨터 아키텍처를 형성합니다. 3. 반환 값으로 C++ 참조

#include<iostream>using namespace std;int n = 3;int& func()
{    return n;
}int main()
{    int num;
    num = func();    cout<<num <<endl;    return 0;
}
로그인 후 복사

함수는 n에 대한 암시적 포인터를 반환하지만 참조해야 하는 개체는 범위를 초과해서는 안 됩니다. 즉, 변수는 다음과 같이 해당 함수 본문에 대해 작동합니다. 전역 위 변수는 참조될 수 있지만 func 함수 내에 배치된 경우에는 참조할 수 없습니다.

4. C++ 참조와 포인터의 차이점

    포인터는 널 포인터일 수 있지만 참조는 올바른 주소 공간을 가리켜야 합니다.
  • 포인터는 한 객체에서 다른 객체를 가리킬 수 있지만 참조가 객체로 초기화되면 변경할 수 없습니다.
  • 포인터는 언제든지 초기화될 수 있지만 참조는 생성 시 초기화되어야 합니다.
  • 관련 권장 사항:

C/C++를 사용하여 PHP 확장 작성

정적 지역 변수를 통해 C, C++, C#, Java, PHP의 특성 보기

위 내용은 C++ 참조 및 포인터 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿