博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于数组和指针作为参数时遇到的问题
阅读量:5088 次
发布时间:2019-06-13

本文共 620 字,大约阅读时间需要 2 分钟。

         自己在实现一个类strcpy函数时,发现一些小问题:

 首先,函数如下:

char *str_n_cpy(char *dest,const char *src){    char *_temp = dest;    assert(dest != NULL || src !=NULL);    //注意越界    printf("%d",sizeof(dest));    while((*dest++ = *src++) != '\0');    return _temp; }

  main函数如下:

int main(){    char *str1 = "123";    char *str2 = "4567";    printf("%s\n",str_n_cpy(str1,3,str2,3));    return 0;}

  运行程序会发现程序崩溃,后来在main函数中把char *str1 = "123"改成char str1[3]={"123"};会发现程序就能正常运行,为什么会这样呢?

经查知,前者实际将str1指向一个常量”123“了,即此时的str1是一个常量指针,其中的内容固然不可改变,所以赋值操作不能进行了;而后者str1实际作为一个普通的char型指针传到函数中,自然可以进行赋值操作。

 

转载于:https://www.cnblogs.com/wangkundentisy/p/4202027.html

你可能感兴趣的文章
HDU 3949 XOR [高斯消元XOR 线性基]
查看>>
for-each用法误区(不能改变数组元素值)
查看>>
f.select
查看>>
SSH2各部分作用
查看>>
不设置默认网关,导致traceroute无法获取途经路由信息原因
查看>>
MySql优化—删除操作
查看>>
三天打渔两天晒网
查看>>
python编码的那些事
查看>>
编程语言分类
查看>>
[转]GIT PUSH Error 403的解决方法
查看>>
Unity 移动主角的时候,鼠标被固定在屏幕中心而且被隐藏
查看>>
自已接触过的数据访问方式总结
查看>>
[2017.02.18] 《调试九法》略读
查看>>
(转) ns2/nam与nam实现相关的文件
查看>>
计算任意文件夹的大小
查看>>
xcode之语法高亮效果消失解决办法
查看>>
Junit--单元测试
查看>>
Win10系列:C#应用控件基础15
查看>>
IIS 错误代码
查看>>
python 字典排序
查看>>