`
tibaloga
  • 浏览: 873238 次
文章分类
社区版块
存档分类
最新评论

const char*, char const* and char *const 的区别

 
阅读更多



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
分享到:
评论

相关推荐

    const char*转LPCWSTR 字符串转换

    一种windows下const char*转LPCWSTR的方法演示

    VC++ string_format(const char* format, ...)

    能够按照格式化输出字符串数据,长度不受限制,亲测十几兆都正常。 #include using namespace std;

    std::string、char*、const char*转托管byte数组或托管字符串String

    std::string、char*、const char*转托管byte数组或托管字符串String

    golang调用c++DLL传递char*型参数读取返回char*字符串内容

    golang调用c++DLL返回值为char*参数为const char*,读取返回DLL返回值,传递char*型参数

    Linux中使用exec函数族详解及示例代码 | 嵌入式Linux应用开发篇 – 03

    1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的...int execle(const char *path, const char *arg,..., char * const en

    const用法 const int *a; int * const a;

    const char* pCh; // 指向字符串常量的指针; 表示pch是一个指针,指向字符串常量。根据需要还可以指向另一个字符串。 但字符串不能被改变。 char* const pCh; // 指向字符串的常量指针; 表示pch是一个字符串常...

    rsa算法设计 密码学

    //extern "C" __declspec(dllexport) int RsaAEncrypt(CString& source,const char* key,const char* R,CStringArray& result);//加密 //extern "C" __declspec(dllexport) CString RsaADecrypt(CStringArray& ...

    CString,string,char*之间的转换

    string的c_str()也是非常常用的,但要注意和char *转换时,要把char定义成为const char*,这样是最安全的。 以上函数UNICODE编码也没问题:unicode下照用,加个_T()宏就行了,像这样子_T("%s") 补充: CString ...

    FTP客户端源码

    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*...

    ZIP 压缩 解压缩 源码

    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 ...

    文本文件解析源代码fileParse

    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 *...

    WinInet简单封装示例程序

    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...

    离线语音识别算法+不用GPU+支持安卓与国产化

    keyFilePath 从网页端或小工具获取到的授权码文件路径 const char* 无 无 type 联网激活或不联网激活标识位 const char* 无 0:联网激活 1:不联网激活 返回结果 含义 类型 范围或类型 剩余天数 int 1-90 永久授权...

    CSplite.zip

    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;

    c代码-C: []数组、*指针、&引用(别名) const char* str;等同于char const* str; char* const str;

    C++实现AES加密/解密

    AES是一个对称加密算法,旨在取代DES成为广泛使用的标准。... void EncryptToFile(const char* srcFilePath, const char* destFilePath); void DecryptToFile(const char* srcFilePath, const char* destFilePath);

    QT写日志类实现实例

    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与char*转换的使用详解

    代码如下://string –> const char  string str2ch; str2ch.c_str();   //=============================  //string –> char * //先转为 const char , 然后 转char *  char TargetFile[strlen...

Global site tag (gtag.js) - Google Analytics