C++ 指標*跟& 的用法及程式碼範例 - LEODFLAG's Blog
文章推薦指數: 80 %
指標* 用法 · 乘法 (普通在程式碼中的情況,數學運算子) · 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<
延伸文章資訊
- 1指標
指標的用法 ... int *p; //宣告p是指向int的指標,英文說成p is a pointer to int ... 指標裡的+運算符號,如pointer p + integer n,表...
- 2第5章、陣列和指標 - C/C++
對於非資訊專業的科學計算或工程應用人員,可能會覺得指標的用法難以掌握,甚至在 ... 指標(pointer)是一種用來指示資料存在於記憶體中的位址標示器,其宣告方式為資料 ...
- 3C語言筆記— 指標(Pointers)
- 4C++ 指標常見用法小結 - 程式人生
常量指標(const pointer)是說這個指標本身就是一個常量物件,所以它不能指向其他物件,但是不意味著它不能改變所指向物件的值。 int num=9;int *const ...
- 5C/C++之指標(pointer),參考(reference) 觀念整理與常見問題 ...
From: http://sandwichc.blogspot.com/2007/02/cc-pointer-reference.html很多程式員說:學C/C++而不會使用指標,相當於沒學過C...