指向 "字符串常量" 和 指向字符串的" 常量的指针"

在C语言中,`my_strcpy`函数用于复制字符串。当尝试复制字符串常量到非常量字符数组时,第二次调用`my_strcpy(str3, str1)`导致编译错误,因为字符串常量是不可修改的。常量指针与指向常量的指针之间的区别在于,前者指针所指向的内容是不可修改的,而后者指针自身不可改变。`const char*`表示指向常量字符串的指针,不允许修改字符串内容,而`char* const`表示常量指针,允许修改字符串但不能改变指针指向。" 81865260,7949281,JavaScript 实战技巧:页面交互与动态效果,"['JavaScript', '前端开发', 'DOM操作', '页面交互']
摘要由CSDN通过智能技术生成

在写模拟实现strcpy时,在修改目标字符串时,编译出错了。

void my_strcpy(char *dest,const char * str)
{
    assert(str != NULL);
    while (*dest++ = *str++)
    {
        ;
    }
}
int main()
{
    char str1[50] = "hello world";
    char str2[] = { 0 };
    char *str3 = "123456789";
    my_strcpy(str2, str1);
    my_strcpy(str3, str1);
    printf("%s\n", str2);
    printf("%s\n", str3);
    system("pause");
    return 0;

}

这是这段代码,第一次拷贝完并可以进行打印,然而第二次就不能通过编译了。查看了网上资料后得知:

指向 "字符串常量" 和 指向字符串的" 常量的指针"

前者字符串是常量, 后者指针是常量.

常量就是 "不许修改的量&

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值