C++ const char*和char* 比較 與 二維字符數組 const char* const* 與 char* strModel1[]


一、【比較】:

1、常量指針const char*和char*比較:

1 {
2 
3    char *version = "3.0.0"; 4 const char* getversion = 5  RTSP_Pusher_GetPushStreamLibVersion(); 6 char* getvTemp = new char[100]; strcpy(getvTemp, getversion); 7  EXPECT_STRCASEEQ(version, getvTemp); 8 9 }

 

2、 const char* const* 與 二維字符數組 char* strModel1[] 比較:

 1 {
 2 
 3    MODEL_INFO_E category1 = FACE_DETECTION_MODEL; 4 const char* const* getModel1 = manager.GetModelInfo(category1); 5 char* getModelTemp1 = new char[2000]; 6 strcpy(getModelTemp1, (*getModel1)); 7 char* strModel1[] = { "abcacb" }; 8 EXPECT_STRCASEEQ(getModelTemp1, strModel1[0]); 9 10 }

 

 

二、【知識 】const char*和char*之間的相互轉換:

5. const char* 轉char* const char* cpc = “abc”; char* pc = new char[strlen(cpc)+1]; strcpy(pc,cpc);

6. char* 轉const char*,直接賦值即可 char* pc = “abc”; const char* cpc = pc;

附:指針常量,常量指針

1 什么是指針常量?指針常量即指針類型的常量。

例:char *const name1=”John”; name1=”abc”; //錯誤,name1指針,不能變,一個指針類型的變量,存放的是地址,所以不能把‘“abc”的地址賦給name1

char * name2= name1; //可以

2 什么是常量指針?

常量指針即是指向常量的指針,指針的值可以改變,指針所指的地址中的內容為常量不能改變,

例:const char *name1=”John”; char s[]=”abc”; name1=s; //正確,name1存放的地址可以改變

char * name2= name1; //不可以,因為name2 和 name1存放的是同一塊地址,如果name2地址中的內容改了,則name1的內容也改了,那么name1就不再是指向常量的指針了。

參考鏈接:https://blog.csdn.net/zhaofrjx/article/details/51056799


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM