gpt4 book ai didi

c - 将for循环的测试条件设置为指针有什么作用

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:36 24 4
gpt4 key购买 nike

我有点难以理解将 for 循环的测试条件设置为指针的确切作用,甚至将其设置为变量值而不进行任何比较。我在作业中使用的一个代码示例是:

int f ( char *s, char *t) {
char *p1, *p2;
for (p1 = s; *p1; p1++) {
for (p2 = t; *p2; p2++)
if (*p1==*p2) break;
if (*p2 == ‘\0’) break;
}
return p1-s;
}

我不是在寻找函数的解释,更多的只是对两个 for 循环的测试条件的解释。

最佳答案

for (p1 = s; *p1; p1++) {
for (p2 = t; *p2; p2++) {

相当于比较*p1*p2为NUL(\0)。当到达字符串的 NUL 终止符时,循环将终止。

for (p1 = s; *p1 != '\0'; p1++) {
for (p2 = t; *p2 != '\0'; p2++) {

您也可以在 ifwhile 语句以及其他类型中使用此速记。遗漏条件会根据其类型的默认零值检查变量:'\0' 用于字符,0 用于整数,0.0f0.0 用于 float 和 double ,NULL 用于指针。

p = malloc(n);
if (p) {
// if p is not null
}

int len = strlen(s);
while (len--) {
// loop until len reaches 0
}

关于c - 将for循环的测试条件设置为指针有什么作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16007189/

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