gpt4 book ai didi

c - 递增指针而不是递增数组及其索引

转载 作者:行者123 更新时间:2023-11-30 16:33:30 26 4
gpt4 key购买 nike

所以我有以下问题

if(buffer[i]== ' '&&buffer[i+1]==' '&&buffer[i+2]==' ')
{


buffer[i]= '*';

putchar(buffer[i]);

i = i + 2

continue;
}

putchar(buffer[i]);

i++;
}

这部分代码用*替换了3个空格。

所以我的挑战是将所有数组访问替换为指针算术

char *tmp0_pointer; // initialised in  main function


if(*tmp0_pointer== ' '&&*tmp0_pointer+1==' ' &&*tmp0_pointer+2==' ' )

{
tmp0_pointer = buffer+i;

*tmp0_pointer= '*';
i = i + 2

continue;
}
tmp0_pointer = buffer+i;
putchar(*tmp0_pointer);

i++;
}

但是下面的代码没有提供相同的结果。我有一种感觉,我没有正确增加指针。有人可以帮我吗?预先感谢您。

最佳答案

给定一个数组int arr[5] = { 1, 2, 3, 4, 5 };

并且你有一个指向数组开头的指针ptr,通常ptr + i指向前面的i位置数组,相当于arr[i];

因此,在使用指针算术 *(ptr + 2) === arr[2] 等的情况下,需要括号。

您可以继续增加指针 ptr++ 或其他内容,但必须确保不超出数组内存空间。

关于c - 递增指针而不是递增数组及其索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49719460/

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