【C】指针的相关运算练习题

前言

嗨喽,大家好~这里是咸鱼安忆.

现在是学C语言时刻~

C语言当中的指针向来是一个难点

本篇文章针对指针的相关运算列出了一些例题供以研究学习

希望看完本篇文章之后,你能有所收获~

例题一

int main()
{
   
   	
	int a[5] = {
   
   1,2,3,4,5};
	int* ptr = (*int)(&a+1);
	printf("%d %d",*(a+1),*(ptr-1))
	return 0;
}

(a+1) 取出的是第二个元素的地址,解引用之后就是2

(ptr-1) 中ptr里存放的地址是由&a+1得到的,&a取得的是整个数组的第一,+1跳过整个数组,ptr就指向了5后面的地址,而ptr-1得到的就是5的地址了,解引用得到结果5

例题二


struct Test
{
   
   
	int Num;
	char* pcName;
	short sDate;
	char cha[2];
	short sBa[4];
}* p;
//假设p 的值为0x100000
//此结构体20个字节
int main()
{
   
   
	printf("%p\n",p + 0x1);
	printf("%p\n",(unsigned long)p + 0x1);
	printf("%p\n",(unsigned int
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值