You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言使用数组指针遍历数组时如何打印对应的下标

问题解决方法

你要的下标可以直接通过当前遍历指针减去数组起始指针得到,这是C语言指针运算的标准特性:指向同一数组的两个同类型指针相减,结果就是两个指针间隔的元素个数。

你代码里的问题有两个:

  1. printf 缺少了下标的入参,还多写了一个多余的逗号
  2. 声明了返回值为double的函数,但没有写return逻辑,编译会触发警告

修正后的完整代码

double func(double* startValueOfArrayPointer, double* endValueOfArrayPointer){   
    double *pointerI;
    for(pointerI = startValueOfArrayPointer + 1; pointerI <= endValueOfArrayPointer; pointerI++)
    {
        // 指针相减得到的偏移量正好是你要的1、2、3...序号
        printf("\n %d value is %.2lf", (int)(pointerI - startValueOfArrayPointer), *pointerI);  
    }
    // 按需补充你需要的返回值即可
    return 0.0;
}

注意事项

  • 要确保传入的两个指针确实指向同一个数组的有效元素,且endValueOfArrayPointer的地址大于等于startValueOfArrayPointer,否则指针减法属于未定义行为,会出现异常输出、崩溃等问题
  • 如果需要兼容极端场景下的大数组,指针相减结果的标准类型是ptrdiff_t,可以把格式符换成%zd避免类型转换警告

内容的提问来源于stack exchange,提问作者Cpt Teemo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 21:45:04