Linux下C測試多個 兩個const

2021-07-30 12:23:56 字數 2274 閱讀 2773

在linux下的gcc測試當型別中有多個*時,

最多兩個const不會出現警告並且必須格式type *const*const p=&a;

警告 const type**p; typeconst**const p=&a;const type **cosnt p=&a;type *const*const*const*const*const..p;

且由後面兩個警告得typeconst**const p=&a;和const type **cosnt p=&a;等效。

只要不出錯,警告出來的一般可以執行(但是是破壞性的)。

推測type const*const*const*const*const*const p=&a;由const依次得到對應型別

type、type*、type**、type***、type****、type*****,顯然對應的這些被限定為不可賦值.當然一些const可能不會有。

因此我覺得typeconst*const p=&a;寫成這樣會好理解。

--------------------------以下全部在linux下,使用的是gcc

正確(兩個**兩個const)

//編譯 gcc const.c

//執行 ./a.out

#include#includetypedef int type;

int main()

[ pcdtest]$ ./a.out

memory**:0x7fffa4714d90 memory*:0x7fffa4714d98  data:321

memory**:0x7fffa4714d90 memory*:0x7fffa4714d9c  data:453

memory**:0x7fffa4714d90 memory*:0x7fffa4714d9c  data:321

正確(三個星兩個const)

//編譯 gcc const.c

//執行 ./a.out

#include#includetypedef int type;

int main()

**********************************以下兩個警告,可以看到type const**const p=&a2;和const type**const p=&a2;等效均會造成警告。

const_.c: in function 『main』:

const_.c:12: 警告:從不相容的指標型別初始化

[ pcdtest]$ ./a.out

memory**:0x7fff0097c300 memory*:0x7fff0097c308  data:321

memory**:0x7fff0097c300 memory*:0x7fff0097c30c  data:453

memory**:0x7fff0097c300 memory*:0x7fff0097c308  data:321

//編譯 gcc const.c

//執行 ./a.out

#include#includetypedef int type;

int main()

//編譯 gcc const.c

//執行 ./a.out

#include#includetypedef int type;

int main()

最後給個字串的

警告:const_.c: in function 『main』:

const_.c:10: 警告:初始化丟棄了指標目標型別的限定

//編譯 gcc const.c

//執行 ./a.out

#include#includetypedef char* type;

int main()

列印結果:

memory:0x7fff719439d0 data:_before_me

memory:0x7fff719439c8 data:me

memory:0x7fff719439c0 data:afterme

memory:0x7fff719439d0 data:_before_me

memory:0x7fff719439c8 data:hello_word

memory:0x7fff719439c0 data:afterme

memory:0x7fff719439c8 data:hello_word

linux下安裝兩個或多個tomcat

加入以下 tomcat路徑要配置自己實際的tomcat安裝目錄 first tomcat catalina base usr local tomcat catalina home usr local tomcat tomcat home usr local tomcat export catalin...

linux系統下安裝兩個或多個tomcat

編輯環境變數 vi etc profile 加入以下 tomcat路徑要配置自己實際的tomcat安裝目錄 first tomcat catalina base usr local tomcat catalina home usr local tomcat tomcat home usr local...

linux系統下安裝兩個或多個tomcat

第乙個tomcat不動 來到第二個tomcat的conf目錄下 開啟server.xml更改埠 修改server.xml配置和第乙個不同的啟動 關閉監聽埠。把上面的這幾個埠改了,不要與第乙個衝突就ok port 8005 shutdown shutdown 8005 9005 port 80 800...