和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的操作。
c 引用
下面的程式碼和上面的程式碼幾乎一樣,修改的僅是幾個符號,但效果是一樣的。
#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 引用就是將number2取了個別名,實際在記憶體上儲存的還是number2記憶體位址,只是編譯器進行了一些最佳化和限制,就像我對電腦科學理解的一樣,不同的組織方式形成了不同的電腦體系結構。
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中文網其他相關文章!

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3漢化版
中文版,非常好用