C语言中range怎么用?

99ANYc3cd6
预计阅读时长 8 分钟
位置: 首页 C语言 正文

在C语言中,并没有像Python那样的内置 range() 函数,C语言中的循环通常使用 for 循环配合索引来实现类似 range() 的功能,以下是几种常见的替代方法:

range c语言
(图片来源网络,侵删)

基本 for 循环(最常见)

通过初始化、条件和递增/递减来模拟 range() 的行为:

#include <stdio.h>
int main() {
    // 模拟 range(5) → 0, 1, 2, 3, 4
    for (int i = 0; i < 5; i++) {
        printf("%d ", i);
    }
    // 输出: 0 1 2 3 4
    // 模拟 range(2, 7) → 2, 3, 4, 5, 6
    printf("\n");
    for (int i = 2; i < 7; i++) {
        printf("%d ", i);
    }
    // 输出: 2 3 4 5 6
    return 0;
}

自定义 range 函数(模拟Python风格)

如果希望更接近Python的 range()(如支持步长),可以封装一个函数:

#include <stdio.h>
// 打印从start到end(不包含),步长为step的序列
void range(int start, int end, int step) {
    for (int i = start; i < end; i += step) {
        printf("%d ", i);
    }
}
int main() {
    // range(0, 5, 1) → 0 1 2 3 4
    range(0, 5, 1);
    printf("\n");
    // range(10, 0, -2) → 10 8 6 4 2
    range(10, 0, -2);
    printf("\n");
    return 0;
}

使用宏定义(编译时展开)

如果希望完全避免函数调用开销,可以用宏定义:

#include <stdio.h>
// 定义宏:RANGE(start, end, step)
#define RANGE(start, end, step) \
    for (int i = (start); i < (end); i += (step))
int main() {
    // RANGE(0, 5, 1) → 0 1 2 3 4
    RANGE(0, 5, 1) {
        printf("%d ", i);
    }
    printf("\n");
    return 0;
}

动态生成范围(动态内存分配)

如果需要将范围存储在数组中(类似Python的 list(range())):

range c语言
(图片来源网络,侵删)
#include <stdio.h>
#include <stdlib.h>
int* create_range(int start, int end, int step, int* size) {
    *size = (end - start) / step;
    if (*size <= 0) return NULL;
    int* arr = malloc(*size * sizeof(int));
    for (int i = 0; i < *size; i++) {
        arr[i] = start + i * step;
    }
    return arr;
}
int main() {
    int size;
    int* range = create_range(0, 10, 2, &size); // 0, 2, 4, 6, 8
    for (int i = 0; i < size; i++) {
        printf("%d ", range[i]);
    }
    // 输出: 0 2 4 6 8
    free(range);
    return 0;
}

需求 推荐方法 特点
简单循环 基本 for 循环 最直接,无需额外代码
模拟Python range() 自定义函数或宏 支持步长,更灵活
存储范围到数组 动态内存分配 可复用数据,但需手动释放内存

根据实际需求选择合适的方式,对于大多数场景,基本 for 循环 已经足够。

range c语言
(图片来源网络,侵删)
-- 展开阅读全文 --
头像
织梦上传图片集的步骤是什么?
« 上一篇 04-19
PowerPC C语言开发需注意哪些关键问题?
下一篇 » 04-19

相关文章

取消
微信二维码
支付宝二维码

目录[+]