sizeof(int)*p 是什么意思 另外int *p = NULL; sizeof(p)的值是多少? sizeof(*p)呢?

没搞错啊,这个是我在一本书上看到的 ,不是很懂。还有2楼那位,我是初学者,你的那些代码看不懂~总之谢谢啦
2026年09月23日 18:40
有4个网友回答
网友(1):

这些是跟系统及编译器有关的量。例如sizeof(int) 在DOS下用TC2.0编译就是2,在32位XP下用VC6或VC2003编译就是4;

在32位机下,sizeof(int)*p是 4乘以p
sizeof(p) = sizeof(int*) = 4,是说指针占用几个字节
sizeof(*p) = sizeof(int) = 4,是说整型数占用几个字节

网友(2):

何为学习?学习不是问别人,是自己动手。怎么动手?利用已有的基础知识动手!如果该掌握的基础知识没掌握,学这些有什么意义!

#include
int main()
{
int a = 2;
std::cout << sizeof a << std::endl;

float b = 3;
float* p = &b;
std::cout << "p : " << p << std::endl;
std::cout << "(*p) : " << *p << std::endl;
std::cout << "int(*p) : " << int(*p) << std::endl;
std::cout << "(int)*p : " << (int)*p << std::endl;
std::cout << "sizeof (int)*p : " << sizeof(int)*p << std::endl;
return 0;
}
到底是什么,你自己写这些简单的语句就出来了,用得着问么?
至于上面的语句中有无法编译过去的语句,那说明你问的问题本身就有问题。

网友(3):

#include

int main()
{
int *p = NULL;
sizeof(p); //即sizeof(int*) 指针所占字节
sizeof(*p); //即sizeof(int) 整型数所占字节
int a[100];

printf("%d\n",sizeof(p));
printf("%d\n", sizeof(*p));
printf("%d\n", sizeof(a)); //a为整型数组,sizeof(a)=100*4;
printf("%d\n", sizeof(a[100])); //a是个int型的数组,每个元素都是int类型的=sizeof(int)
printf("%d\n", sizeof(&a));
printf("%d\n", sizeof(&a[0]));
}
结果
4
4
400
4
4
4

网友(4):

你搞错了吧!
sizeof(int)*p 这个应该是4*p

sizeof(int)计算的是整形的字节数