第九章 指针_C语言数组灵活多变的访问形式

本文探讨了C语言中指针与数组的结合使用,通过示例代码展示了如何通过指针灵活访问数组元素,包括字符与整数的ASCII码转换、字符串地址操作以及数组初始化和遍历。
摘要由CSDN通过智能技术生成

C语言中的指针使得代码的编写非常灵活,如果指针能够和数组结合,那将会有更多的“花招”,请看下面的代码:

运行结果:

  s1 = c.biancheng.net
  s2 = biancheng.net
  c1 = a
  c2 = c
  c3 = a
  c4 = e
  c5 = c
  num1 = 101
  num2 = 2686736
  num3 = 2686738

字符与整数运算时,先转换为整数(字符对应的ASCII码)。num1 与 c4 右边的表达式相同,对于 num1,*str+2 == 'c'+2 == 99+2 == 101,即 num1 的值为 101,对于 c4,101 对应的字符为 ‘e’,所以 c4 的输出值为 'e'。

num2 和 num3 分别为字符串 str 的首地址和第 2 个元素的地址。

为了加深大家的理解,请继续阅读下面的代码:

运行结果:

abcdefghij
cdefghij
c
e

第5行代码用来将字符数组中的所有元素都初始化为\0,这样在循环结束时就无需添加字符串结束标志。

前面三个 printf() 比较容易理解,第四个 printf(),str+2 表示指向第 2 个元素,(str+2)[2] 相当于    *(str+2+2),也就是取得第 4 个元素的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值