Day 4:指针的运算

指针的算术运算

声明指针为什么要包括数据的数据类型?

        指针运算就是以指针所存放的地址作为运算量而进行,实质就是地址的计算

        数据:指针所存放数据的数据类型。

+ & -

        应用:利用指针打印以上数组。

++ & --

 问题:

        *p ++ == (*p) ++ ?

 验证:

结论:

优先级上:

  •   ++  > *  :但是不能说:*p++    ==  *(p + 1) [详情请看后续问题]
  • ()> ++: (*p)++ == (*p) + 1

前、后置运算符

        q = p ++ == ( q = p ; p = p + 1 )

问题:以下*p++ = 3;等价于什么?

   

回答:

 *p++ = 3 =>*p = 3 ; p = p + 1;

问题:将上述改为*++p = 3;

回答:

*++p = 3 => *(p+1)  = 3

电脑的存储模式

问题:写一个程序判断电脑是大端还是小端。

答案:小端。

注意事项

问题:下列程序会输出什么。

问题:通过指针向数组存取数据。

指针的关系运算

应用

        用指针实现逆序存放数组元素值。

        错误示范:

        首先,&arr1 是数组 arr1 的地址,它的类型是 int(*)[8]即指向一个有 8 个整数的数组的指针,而不是 int*

        注意:数组名就已经等同于数组首元素的地址,因此不同于变量,需要增加'&'这个取地址操作符。

        其次,指针运算通常用于访问数组中的元素,而不是直接交换它们

课后习题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值