一、【比較】:
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