指针笔试题

//假设p的值是0x100000.已知结构体Test类型的变量大小是20个字节




struct Test
{
int Num;
char *pcName;
short sDate;
char cha[2];
short sBa[4];
}* p;

p=(struct Test*);
int main()
{
printf("%p\n",p+0x1);
printf("%p\n",(unsigned long)p+0x1);
printf("%p\n",(unsigned int*)p+0x1);
return 0;
}

 ①0x00100014=0x100000+20个字节

②16进制转化为十进制1048576+1=10485767   0x00100001

③p类型强制转换为无符号整型指针,+1跳过一个整型,相当于跳过了4个字节

解释:因ptr是一个整型指针,-1,说明它向前跳过一个整型,指向10.

#include <stdio.h>
int main()
{
char *a[]={"work","at","alibaba"};//数组a里存放'w','a','a'首元素的地址
char **pa=a;    //char* *pa=a;
pa++;             //*pa说明pa是一个指针,pa++使得pa跳过一个char*的变量
printf("%s\n",*pa);  //at
return 0;
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值