# include <iostream>
using namespace std;
int main(void)
{
char c[] = {'h','e','l','l','0','\0'};
char* a = c;
cout << sizeof(a);
return 0;
}
以前听人讲过一点,比如在这里a指向的都是第一个字节的地址,但是为什么打印出来的是4,还是有点懵,来个人好好讲讲撒。
# include <iostream>
using namespace std;
int main(void)
{
char c[] = {'h','e','l','l','0','\0'};
char* a = c;
cout << sizeof(a);
return 0;
}
以前听人讲过一点,比如在这里a指向的都是第一个字节的地址,但是为什么打印出来的是4,还是有点懵,来个人好好讲讲撒。
指针所指向的是地址,作为32位的机子,那么地址是4*8=32位的,也就是32位机子下的指针大小为4;
若作为64位机子,那么地址是8*8=64位,也就是64位机子下面指针大小为8;
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.3k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.5k 阅读
3 回答516 阅读✓ 已解决
1 回答3.3k 阅读
指针所占字节数跟处理器位数有关系,32位处理器就是4个字节,虽然你可能是64位处理器,但要看你是否是64位程序,所以只要int是4个字节,那指针就还是4个字节