首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pointers..Please帮助中的有趣问题

pointers..Please帮助中的有趣问题
EN

Stack Overflow用户
提问于 2010-09-06 20:43:53
回答 1查看 169关注 0票数 2
代码语言:javascript
复制
#include<iostream>
#include<conio.h>

using namespace std;
int main()
{
           int x = 65;
           int *ptr = &x;
           char * a= (char *)ptr;
           cout<<(int)*(a);
           getch();return 0;
}           

六开(Ptr)和六开(A)显示器4

Sizeof(int)显示4,sizeof(char)显示1

因此65是以4字节存储的,即

00000000 00000000 00000000 01000001,第一个字节的地址存储在ptr中

在上面的代码中,我将int*类型转换为char*,目的是打印存储在x(int类型)第一个字节中的值。

因此,在类型转换"a“存储ptr中包含的第一个字节地址ie之后,现在在显示(int)*a时,是否应该只考虑第一个字节来显示值..??但是输出是65而不是0(第一个字节值)..Where我错了吗?

我学到的是

代码语言:javascript
复制
char * ptr1;
ptr1++;  //Ptr1 goes to the next byte..*ptr1 will display only 1 byte value

int  * ptr2;
ptr1++;  //Ptr2 goes to the next 4 byte..*ptr2 will display value conmtain in 4 bytes

PS -我正在开发Dev-C++

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-06 20:49:19

你的机器是little-endian的,最不重要的字节在前面。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3651539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档