constchar*,charconst*,char*const的区别问题几乎是C++面试中每次都会有的题目。
事实上这个概念谁都有只是三种声明方式非常相似很容易记混。
Bjarne在他的TheC++ProgrammingLanguage里面给出过一个助记的方法:
把一个声明从右向左读。char*constcp;(*读成pointerto
cpisaconstpointertochar
constchar*p;
pisapointertoconstchar;
charconst*p;
同上因为C++里面没有const*的运算符,所以const只能属于前面的类型。
C++标准规定,const关键字放在类型或变量名之前等价的。
constintn=5;
//sameasbelowintconstm=10;
constint*p;//sameasbelow
const(int)*pintconst*q;//(int)const*p
char**p1;
//pointertopointertochar
constchar**p2;
//pointertopointertoconstchar
char*const*p3;
//pointertoconstpointertochar
constchar*const*p4;
//pointertoconstpointertoconstchar
char**constp5;
//constpointertopointertochar
constchar**constp6;
//constpointertopointertoconstchar
char*const*constp7;
//constpointertoconstpointertochar
constchar*const*constp8;
//constpointertoconstpointertoconstchar
相关推荐
一种windows下const char*转LPCWSTR的方法演示
能够按照格式化输出字符串数据,长度不受限制,亲测十几兆都正常。 #include using namespace std;
std::string、char*、const char*转托管byte数组或托管字符串String
golang调用c++DLL返回值为char*参数为const char*,读取返回DLL返回值,传递char*型参数
1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的...int execle(const char *path, const char *arg,..., char * const en
const char* pCh; // 指向字符串常量的指针; 表示pch是一个指针,指向字符串常量。根据需要还可以指向另一个字符串。 但字符串不能被改变。 char* const pCh; // 指向字符串的常量指针; 表示pch是一个字符串常...
//extern "C" __declspec(dllexport) int RsaAEncrypt(CString& source,const char* key,const char* R,CStringArray& result);//加密 //extern "C" __declspec(dllexport) CString RsaADecrypt(CStringArray& ...
string的c_str()也是非常常用的,但要注意和char *转换时,要把char定义成为const char*,这样是最安全的。 以上函数UNICODE编码也没问题:unicode下照用,加个_T()宏就行了,像这样子_T("%s") 补充: CString ...
ftpclient(const char* connmode="port", const char* transmode="binary"); ~ftpclient(void); int connect(const char* addr, short port); int disconnect(); int login(const char* username, const char*...
static bool UnZip( const char* filename, const char* dstfolder, bool ingorepath = false, const char* password = NULL); bool OpenUnZipFile(const char* filename); bool CloseUnZipFile(&#...
void __stdcall SendFetionSMSA(const CHAR* tszUserName,const CHAR* tszPass,const CHAR* tszSendTo,const CHAR* tszMsg); void __stdcall SendFetionSMSA(const CHAR* tszUserName,const CHAR* tszPass,const ...
bool compara(const char* src,const char* dest); double getVarMarked(int n,const char* mark); int getNumOfOrderInString(int n,const char *str); void getSubwordInString(int n,char *dest,const char *...
void AddHeader(const char* lpszName, const char* lpszValue); void ClearCookies(); void AddCookie(const char* lpszName, const char* lpszValue); void ClearPostArgs(); void AddPostArg(const char* ...
int replace_str(const char * src, const char * key_src, const char * key, char ** buf); int replace_count(const char * src, const char * key_src, int * n); int main() { char * str = "a 123 b 156 LL a...
keyFilePath 从网页端或小工具获取到的授权码文件路径 const char* 无 无 type 联网激活或不联网激活标识位 const char* 无 0:联网激活 1:不联网激活 返回结果 含义 类型 范围或类型 剩余天数 int 1-90 永久授权...
CSplite(const char *pSrcStr, const char *pSplitter); ~CSplite(); //设置拆分的源字符串及拆分符 void SetSplite(const char *pSrcStr, const char *pSplitter); //返回元素个数 int GetElementNum(void...
c代码-C: []数组、*指针、&引用(别名) const char* str;等同于char const* str; char* const str;
AES是一个对称加密算法,旨在取代DES成为广泛使用的标准。... void EncryptToFile(const char* srcFilePath, const char* destFilePath); void DecryptToFile(const char* srcFilePath, const char* destFilePath);
int WriteLog(const char *sLog,int Retract_n=Retract_L1); //写通信日志 int WriteTransmitLog(int transmit_way,const unsigned char *Data_in, int in_Len); //写头 int WriteCall(const char * szApiName...
代码如下://string –> const char string str2ch; str2ch.c_str(); //============================= //string –> char * //先转为 const char , 然后 转char * char TargetFile[strlen...