gpt4 book ai didi

你能解释一下为什么 p[-1] 是可能的吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:48:18 25 4
gpt4 key购买 nike

int *p[10]={5,663,36,6};

*(p - 1) = 'e';

int c=*(p-1);

printf("%c",c);

我不明白为什么我们在数组索引中使用负数

*(p - 1) = 'e';

最佳答案

对于您的示例,这将是未定义的行为,但在某些情况下您可能想要使用它,特别是如果您的指针指向数组内的某处并且您检查您是否仍在数组的范围内。

就像这个例子......

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
char hello[]="worlld";
char *p;

for(p=hello;*p!='\0';p++) {
if ((p>hello) && (p[-1]==p[0])) {
printf("%c\n",p[0]);
}
}
return(0);
}

关于你能解释一下为什么 p[-1] 是可能的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53449118/

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