C 面试题
目录
- 地址转换问题
- 指针地址的使用
地址转换问题

#include <iostream>
using namespace std;
int main() {
char test[8] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
int *test_p = (int *)test;
int a = test_p[0];
printf("ox%X", a);
return 0;
}
/*
ox4030201
*/
指针地址的使用

#include <iostream>
using namespace std;
struct Test {
int Num;
char *pcName;
short sDate;
char cha[2];
short sBa[4];
} *p;
int main() {
Test t;
p = (struct Test *)&t;
printf("sizeof(Test) = %d\n", sizeof(Test));
printf("%X\n", p);
printf("%X\n", p + 0x1);
printf("%X\n", (unsigned long*)p + 0x1);
printf("%X\n", (unsigned int*)p + 0x1);
return 0;
}
/*
sizeof(Test) = 32
61FE00
61FE20
61FE04
61FE04
*/