刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
这个问题涉及到指针、动态内存分配以及sizeof操作符的使用。在64位系统下,我们需要理解指针变量的大小以及如何通过指针进行内存分配。
对于"*p=NULL",我们需要理解指针变量的大小,而不是它所指向的内存空间的大小。在64位系统中,指针的大小是固定的,通常为8字节。因此,"*p=NULL"时,p指向的地址值为0,但指针变量p本身的大小是固定的8字节。
对于"*p=new char[100]",这里涉及到动态内存分配。当我们使用new关键字分配一个字符数组时,系统会为该数组分配100字节的内存,并返回这块内存的首地址,然后我们将这个地址赋值给指针变量p。因此,p所指向的内存空间大小为100字节。而指针变量p本身的大小仍然是8字节。
"sizeof(p)"的含义是获取指针变量p的大小,而不是它所指向的内存空间的大小。在64位系统下,指针变量的大小为8字节。
最优回答:
在64位系统下:
sizeof操作符:这是一个编译时操作符,用于获取数据类型或变量在内存中的大小。对于指针,sizeof返回的是指针变量本身的大小,而不是它所指向的内存空间的大小。
动态内存分配:C++中的new关键字用于动态分配内存。当我们使用new分配一个数组时,系统会为该数组分配连续的内存空间,并返回这块内存的首地址。需要注意的是,使用new分配的内存需要在程序结束时通过delete关键字手动释放,否则会造成内存泄漏。
指针和地址:指针是一个变量,它存储了另一个变量的地址。通过指针,我们可以间接访问该变量。在64位系统中,指针的大小通常为8字节。
本文链接:在64位系统下,请阐述以下两个表达式的含义以及它们对应的内存大小:*p=NULL 和 *p=new
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!