c语言问题 - 数组指针 *ch+i 和 *(ch+i) 的区别

在给定数组 char ch[] = "hello" 的情况下,如果设定一个下标 i,有以下区别:

  1. *ch + i 表达式的含义是通过 ch 指针获取数组的首个元素 'h' 然后加上 i。这实际上是一个数学运算,即将字符 'h' 的 ASCII 值(104)与 i 相加。结果将是一个整数值。

  2. *(ch + i) 表达式的含义是通过 ch 指针加上 i 的偏移量来访问数组中的特定元素。也就是说,ch + i 操作会将指针移动到数组的第 i 个元素处,然后 *(ch + i) 取得该处的元素的值。结果将是数组中第 i 个元素的字符值。

例如,如果 i 的值为 2,则可以得到以下结果:

  • *ch + i104 + 2 = 106
  • *(ch + i)'l'

总结来说,*ch + i 是先计算指针所指向的数据并与 i 相加,结果为整数值;而 *(ch + i) 是根据指针和偏移量访问数组中的特定元素,结果为该元素的值。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值