指针取值问题
#include<iostream>#include<stdio.h>
#include<string.h>
#include<conio.h>
using namespace std;
int main()
{
unsigned char a=0xf7;
char *b=(char *)&a;
printf("%x %x",a,*b);
return 0;
}
结果是f7fffffff7
为什么会是fffffff7,我理解利用指针间接访问变量时,就是从指针中找到变量的首地址,然后根据指针的类型决定从该首地址开始的连续几个内存为变量的内存,然后读入这连续内存中的数据作为该变量的值。
怎么都是基础中的基础...
前面申请和后面的完全不配套呀
unsigned char *b=(unsigned char *)&a;
这样才对呀
之所以多几个F是因为占得字节不一样.
unsigned char 1字节
char 4字节
页:
[1]