|
发表于 2020-9-7 15:07:31
|
显示全部楼层
本楼为最佳答案
本帖最后由 sunrise085 于 2020-9-7 15:22 编辑
二楼说的不对
指针是一个数据类型,char也是一个数据类型,二者是不同的数据类型。
指针自己的长度就是8个字节(在64位系统中),它存放的是一个地址,在你的这段程序中存放的是str数组的首地址,在64位系统中一个地址长度是64位,即8个字节。
str[]是一个char类型的数组,数组长度为5,存放五个char类型的数据,数组内容分别是'h' 'o' 'm' 'e' '\0',每个字符占一个字节,char类型的变量就是一个字节,因此数组占5个字节
举个例子,假设str首地址是0x3a5de8903a5de890,那么,'h'的地址就是0x3a5de8903a5de890,然后其他字符的地址依次向后,分别是0x3a5de8903a5de891,0x3a5de8903a5de892,0x3a5de8903a5de893,0x3a5de8903a5de894 。指针p指向str,则指针p存放的内容是0x3a5de8903a5de890,这是一个64位的数据,所以占8个字节。
看图,地址都是随便编的
|
|