C++ Primer中&、*符號的多重定義與int *p和int* p的區(qū)別講解
&
和*
這樣的符號,既能用作表達式里的運算符,也能作為聲明的一部分出現(xiàn),符號的上下文決定了符號的意義:
int i = 42; int &r = i; //&緊隨類型名出現(xiàn),因此是聲明的一部分,r是一個引用 int *p; //*緊隨類型名出現(xiàn),因此是聲明的一部分,p是一個指針p p = &i; //&出現(xiàn)在表達式中,是一個取地址符 *p = i; //*出現(xiàn)在表達式中,是一個解引用符 int &r2 = *p; //&是聲明的一部分,*是一個解引用符
在聲明的語句中,&
和*
用于組成復合類型;在表達式中,他們的角色又轉變成運算符。在不同場景下出現(xiàn)的雖然
是同一個符號,但是由于含義截然不同,所以我們完全可以把他們當做不同的符號來看待。
根據(jù)C++Primer介紹:
對于int* p
(這種寫法合法,但是容易造成誤導),其基本數(shù)據(jù)類型是int
,后面的*
其實是聲明符。在一組公用的數(shù)據(jù)類型后面可以使用不同的聲明符。例如:
int i =1024, *p = &i, &r = i; //i是一個int類型的數(shù)據(jù),p是一個int型的指針,r是一個int型引用。
對于int *p
,其和int* p
的含義一樣,都表示int類型的指針變量p。
但是將聲明符緊跟著變量名是一種更容易理解的做法。否則可能會出現(xiàn)誤導現(xiàn)象:
例如
int* p1, p2;表示含義是p1是一個int型的指針,p2是一個int型變量。而不是p1,p2都是指針變量,它們共用的是基本數(shù)據(jù)類型部分。
如果寫成int *p1,p2;
則和上式表示的含義完全一樣,但是更加清晰,不會造成誤導。
不過對于以上兩種寫法的使用,主要看個人的習慣,但是最好不要混用。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支持。如果你想了解更多相關內容請查看下面相關鏈接
上一篇:詳解C++基礎——類繼承
欄 目:C語言
下一篇:C++ 設置控制臺(命令行)窗口 光標位置,及前背景顏色
本文標題:C++ Primer中&、*符號的多重定義與int *p和int* p的區(qū)別講解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/333.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言沒有round函數(shù) round c語言
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 01-10深入理解C++中常見的關鍵字含義
- 01-10使用C++實現(xiàn)全排列算法的方法詳解
- 01-10深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
- 01-10APUE筆記之:進程環(huán)境詳解
- 01-10c++中inline的用法分析
- 01-10如何尋找數(shù)組中的第二大數(shù)


閱讀排行
本欄相關
- 04-02c語言函數(shù)調用后清空內存 c語言調用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調用函數(shù)求fibo C語言調用函數(shù)求
隨機閱讀
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10C#中split用法實例總結
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10delphi制作wav文件的方法
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文