C++ 指標*跟& 的用法及程式碼範例 - LEODFLAG's Blog

文章推薦指數: 80 %
投票人數:10人

指標* 用法 · 乘法 (普通在程式碼中的情況,數學運算子) · int* x (指標變數) · Void add ( int* x ) (函式內的引數) · *x (取指標指向變數的值). 直接觀看文章 主選單 LEODFLAG'sBlog 搜尋 搜尋: 適用電子郵件訂閱網站 輸入你的電子郵件地址訂閱網站的新文章,使用電子郵件接收新通知。

加入其他2位關注者 電子郵件地址: 訂閱 標籤C++ CNN CUDA docstring gh-pages github.io GPU運算 GPU驅動 Jekyll K-NN Keras K最鄰近法 Makefile MNIST package pypi Python Resume Sphinx Tensorflow-gpu Ubuntu18.04 vim 上傳 位址 倒傳遞神經網路 前向傳播 反應時間研究 套件 履歷 指令 指標 環境設置 用法 程式碼 範例 行為學派 認知心理學 語言習得 說明文件 陣列 電腦雙系統分類 C++學習筆記 認知心理學 Github Linux Machinelearning Python Ubuntu 未分類 直接觀看文章 指標* 用法 C++的指標 * 是根據上下文來推斷指標的用法和意義,有以下4種用法: 乘法  (普通在程式碼中的情況,數學運算子)int*x  (指標變數)Voidadd(int*x)  (函式內的引數)  *x(取指標指向變數的值) 以下展示用法2~4的程式碼寫法: voidadd(int*x,int*y)//3.函式內的引數 { printf("sum=%d\n",*x+*y);//指標指向的數值相加 } intmain() { intnum1=2,num2=3; printf("&num1=%p\n",&num1);//&num1=0x7fff34867b50 int*pi_1,*pi_2;//2.宣告指向整數的指標 pi_1=&num1;//用指標pi_1指向num1的位址 pi_2=&num2;//用指標pi_2指向num2的位址 printf("pi_1=%d\n",*pi_1);//pi_1=2(4.用*取指標指向變數的值) printf("&pi_1=%p\n",&pi_1);//&pi_1=0x7ffe140a9f68 add(pi_1,pi_2);//sum=5 } 若宣告int*x=0; 則是設x為指標,指向記憶體位址,x++ 記憶體位址變動。

int*x=0;//x記憶體位址:0 x++;//x記憶體位址:0x4 補充:指標宣告時空格不影響,因此以下寫法都可以使用,可用自己習慣的寫法,同時看懂別人寫法。

int*pi_1 int*pi_1 int*pi_1 int*pi_1 多重指標 intA=2; int*ptr1=&A;//建立指標變數ptr1,指向變數A的位址 int**ptr2=&ptr1;//建立指標變數ptr2,指向指標變數ptr1的位址 int***ptr3=&ptr2;//建立指標變數ptr3,指向指標變數ptr2的位址 ***ptr3=**ptr2=*ptr1=2 &用法 &這符號也是根據上下文來推斷用法和意義,有以下3種用法: 且 (常用的邏輯運算子)解出記憶體位置在函式(function)使用時設為參考 (reference) 以下展示用法2的程式碼用法: int*ptr; intb=10; printf("b:%d\n",b);//b變數值:10 printf("&b:%p\n",&b);//&b:0x7ffd8bc63f5cb本身的位址 ptr=&b;//ptr指向b的位置 printf("ptr:%d\n",*ptr);//ptr:10用*取指標指向變數的值 printf("&ptr:%p\n",&ptr);//&ptr:0x7ffd8bc63f60ptr本身的位址 以下是用法3的程式碼。

函式傳入參數時使用參考,如swapValue2的用法,可以將a、b參數的值互換,而且將互換結果在函式外延用;swapValue1內的a、b值有被互換,但在函式外是本來的值,因此是複製一份a、b在函式內使用。

swapValue1、swapValue2都不會讓a、b的位址互換。

voidswapValue1(inta,intb)//複製a、b數值後交換 { inttmp=a; a=b; b=tmp;//交換完的結果僅在函式內 cout<



請為這篇文章評分?