注册 登录
编程论坛 新人交流区

一个指针空间问题

Cking 发布于 2007-10-14 22:36, 374 次点击
char str[]="hello";
char *p=char;
int n=10;
sizeof(str)=6;//这个我知道为什么
sizeof(p)=4;//为什么?
sizeof(n)=4;//不是两个字节吗?

//还有
void func(char str[100])
{
sizeof(str)=4;//为什么?
}
void *p=malloc(100);
sizeof(p)=4;//为什么?不懂!


谢谢啊!

[此贴子已经被作者于2007-10-14 22:36:34编辑过]

3 回复
#2
鸿工作室2007-10-15 01:17

sizeof(p)=4;//char很简单,就一个字节,四个字母就是4罗
sizeof(n)=4;//VC++中int类型是分配了4个字节的空间的

//还有
void func(char str[100])
{
sizeof(str)=4;//这个应该是100,你再去试试看
}
void *p=malloc(100);
sizeof(p)=4;//这个得看你是指定了什么类型了,如果是int,那就是4罗

#3
lee1984092007-10-15 01:21

char str[]="hello";
char *p=char;
int n=10;
sizeof(str)=6;//这个我知道为什么
sizeof(p)=4;//指针都是4
sizeof(n)=4;// 这个和编译器有关,也可以是2

//还有
void func(char str[100])
{
sizeof(str)=4;//str仍然是一个指针,和上面p一样的

void *p=malloc(100);
sizeof(p)=4;//和p一样的

#4
Cking2007-10-15 11:11

非常感谢两位啊!
sizeof(str)=4出现分歧了?

1