Python 및 JavaScript와 같은 고급 언어와 마찬가지로 PHP도 C/C++를 통해 확장 기능을 작성할 수 있습니다. 여기에서는 간단한 PHP 확장을 구축하는 방법과 타사 DLL 라이브러리를 호출하는 방법을 공유합니다.
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; }
number1의 값은 변경되지 않고, number2는 1씩 증가합니다. add_1()에 매개변수를 전달하는 것은 공백을 여는 것과 같습니다number1의 값이 공백에 복사되고, 복사된 값 수행된 모든 작업은 원본 데이터에 영향을 주지 않습니다. add_2()에 전달된 매개변수는 number2의 주소를 저장할 공간을 여는 것입니다. num에 대한 모든 연산은 number2에 대한 연산과 같습니다.
#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; }
2번의 별칭입니다. 실제로 메모리에 저장되는 것은 여전히 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++ 참조 및 포인터 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!