首页 > 试题广场 >

char str[] = “Hello”; char *p

[单选题]
char str[] = “Hello”; char *p = str; sizeof(p) = ?
()
  • 1
  • 5
  • 6
  • 8
查询百度后发现,指针的长度和机器有关,64位机对应8个字节,32位机对应4个字节。ps:本人也不太确定,如有错误,请指正
发表于 2020-02-16 20:34:18 回复(0)
sizeof:是运算符,获取某个数据类型所占用空间的字节数,参数可以是数组、指针、类型、对象、函数等。
strlen:是函数,参数必须是字符型指针,返回字符串的长度。从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL(字符串以“\0”结尾,但是不计入长度)
发表于 2020-02-16 22:23:15 回复(0)
sizeof 操作符用于计算数据类型或者变量所占用的内存字节数。当对指针变量使用 sizeof 操作符时,它返回的是指针本身占用的内存大小,而不是指针所指向的数据类型的大小。
指针大小和系统架构的关系
指针的大小取决于操作系统的位数(即系统架构):
32 位系统:在 32 位操作系统中,指针占用 4 个字节(32 位)的内存空间,因为 32 位系统的地址总线宽度为 32 位,能够表示的内存地址范围是 2^32 个不同的地址。
64 位系统:在 64 位操作系统中,指针占用 8 个字节(64 位)的内存空间,因为 64 位系统的地址总线宽度为 64 位,能够表示的内存地址范围是 2^64 个不同的地址。
发表于 2025-04-12 16:13:02 回复(0)