本文地址:https://www.cnblogs.com/oberon-zjt0806/p/14631149.htmlhtml
常常寫C++的基本上避不開使用指針,並且C++中指針類型的寫法大致上有兩種:編輯器
int* a = nullptr; //*靠前 int *b = nullptr; //*靠後
都是聲明一個指針。工具
關於哪一種寫法的傾向性,每一個人都不太同樣,有的往前放,有的日後放,還有的👴愛放哪放哪,你管得着嘛。指針
《C++ Primer》中推薦靠後,緣由是:code
int *a,b,c; // a是指針,b和c都不是 int* a,b,c; // 同樣,但容易引發誤會,讓人誤覺得b和c是指針,實則否則
不過用Visual Studio寫C++的時候,格式化方式又有所不一樣,當你敲完int*a=nullptr;
後會靠前,會變成int* a=nullptr;
,其緣由可能是隔壁的C#只容許往前放的寫法:orm
//C#代碼 unsafe ... { int* a,b,c; // a,b,c都是指針 int *a,*b,*c; // 錯誤!不讓這麼寫。 }
我卻是不關心C#怎麼寫,可是在C++的語境下,我贊同《C++ Primer》的觀點,喜歡日後放,可是VS就像個傲嬌同樣,分號一敲完就把我剛寫好的int *a
變成了int* a
。htm
固然不是,對於C++代碼,VS默認狀態下使用的是Clang-Format方案。
Clang-Format將這個問題稱爲指針對齊,使用PointerAlignment
設置,其實據說Clang默認是Right
的。不過在Clang-Format配置文件中VS默認將PointerAlignment
置爲Left
。blog
固然,咱們倒不必把VS的Clang-Format配置文件拎出來暴打一頓塞回去,VS其實容許咱們手動設置這個風格,步驟以下:開發
菜單欄→工具→選項
,打開選項窗口 文本編輯器→C/C++
) 代碼樣式→格式設置→間距
,而後在右側找運算符的間距→指針/引用對齊方式
下面有四個選項,你就能夠設置成你prefer的方式,而後在下面看預覽效果觀察*
和&
的位置,肯定就行了 這樣,VS就不會固執地把*
往前放了。get
相似地,關於其餘運算符的設置方法也能夠在這個上下文中進行,所以這個位置值得記錄一下,畢竟恰當設置能夠提高開發效率,這個設置的位置又比較隱蔽容易迷路,因此特此記錄一下。