⚠️ 结构体数组,长度还是用比值算

👁️ 0 人浏览 💬 0 人评论 ❤️ 添加收藏

(本条路线统一用 gcc -std=c11 -O0 编译)三个点排成一个数组:

#include <stdio.h>

struct Point { int x; int y; };

int main(void) {
    struct Point ps[3] = {{1, 2}, {3, 4}, {5, 6}};

    /* 元素个数用比值算,**不是 sizeof 结构体的绝对值** */
    int n = sizeof(ps) / sizeof(ps[0]);
    int sx = 0;
    for (int i = 0; i < n; i++) sx += ps[i].x;
    printf("%d/%d/%d\n", n, sx, ps[2].y);
    return 0;
}
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论