能否举个c语言指针例子。

能否举个例子。char *const p初始化一个指针,然后再改变p的地址。char const *p初始化一个指针,在改变p指向的内容

图片说明
不是所有编译器都能这么写,但是VC++ 6.0可以。

 #include <stdio.h>

int main()
{
char *const p = "hello";
*((char *)(void *)&p) = (char)"world";
printf("%s", p);
}
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/336721
  • 你也可以参考下这篇文章:C 语言编程 — 异常处理
  • 你还可以看下c语言参考手册中的 c语言-指针
  • 除此之外, 这篇博客: C语言常用关键字详解中的 1、const 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    声名只读变量

    //const 在前面
    const int nValue; //const 修饰的是int,整型固定,但是nValue的值是也不变的
    const char* pContent; //const 修饰的是char*, 指针类型固定,但是pContent是可以变的
    const char* const pContent; //pContent和*pContent都被const修饰,都不可变。
     
    //const 在后面
    int const nValue; //const修饰的是nValue,在一定程度上和const int nValue相同,nValue的值不能修改
    char const *pContent; //const修饰的是*,pContent是可以改变的
    char* const pContent; //const修饰的是pContent,*pContent是可以改变的
    char const * const pContent; //pContent和*pContent都被const修饰, 都不可以改
     
    //const推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^