gpt4 book ai didi

c - C中的循环控制使用结构数组的指针

转载 作者:太空宇宙 更新时间:2023-11-03 23:29:37 26 4
gpt4 key购买 nike

我是一个新手,正在尝试使用下面的示例来理解指向数组的指针的概念。谁能告诉我循环的退出条件应该是什么?
while 循环似乎一直在运行,但程序终止时没有任何输出。
谢谢。

typedef struct abc{
int a;
char b;
} ABC;

ABC *ptr, arr[10];

int main()
{
ptr = &arr[0];
int i;
for(i = 0; i < 10; i++){
arr[i].a = i;
}
while(ptr!=NULL){
printf("%d \n", ptr->a);
ptr++; //Can I use ptr = ptr + n to skip n elements for some n?
}
}

最佳答案

while(ptr!=NULL){

这将一直运行直到 ptr 变为 NULL。由于它指向数组的第一个元素,并且它始终递增,而且我们不知道任何其他实现细节,因此它可能会也可能不会成为 NULL。这不是您检查是否走过数组末尾的方式。你需要

while (ptr < arr + 10)

相反。

Can I use ptr = ptr + n to skip n elements for some n?

当然。当我们在做的时候:为什么不 ptr += n

关于c - C中的循环控制使用结构数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18945577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com