首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

sizeof()求传递参数大小的有关问题

2013-03-29 
sizeof()求传递参数大小的问题hi all:公司代码要修改,只好自己写代码。但是发现一个问题,请教一下:#include

sizeof()求传递参数大小的问题
hi all:
公司代码要修改,只好自己写代码。但是发现一个问题,请教一下:
#include <stdio.h>
char str[32] = "abcdefghijklmnopqrstuvwxyz";

void fool(char *p)
{
    printf("sizeof string %d\n",sizeof(*p));
}
main()
{
    fool(str);
}

得到的结果是 1 而不是 32。这是为什么?网上差了一下叫做 弱拷贝,我想问问如过这个指针指向的字符串长度为 1.那么在fool函数中还可不可以进行strncpy(p,"123456",32)这样的操作。我试了一下好像没有segament fault。这是为什么?
我的编译器是gcc 环境就是ubuntu 12.04

谢谢
[解决办法]

引用:
p的类型是char *
*p的类型是char
所以
sizeof(*p) = sizeof(char)

++

热点排行