码迷,mamicode.com
首页 > 编程语言 > 详细

关于数组和指针作为参数时遇到的问题

时间:2015-01-04 21:18:54      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:

         自己在实现一个类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型指针传到函数中,自然可以进行赋值操作。

 

关于数组和指针作为参数时遇到的问题

标签:

原文地址:http://www.cnblogs.com/wangkundentisy/p/4202027.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!