gpt4 book ai didi

c - `if(!*str) ...` 对于 `char* str` 意味着什么?

转载 作者:行者123 更新时间:2023-11-30 18:17:28 25 4
gpt4 key购买 nike

!*s 在此函数中执行什么操作:

void f( char *s) {
if( !*s ) {
return;
}
f( s+1 );
putchar( *s );
}

int main( void ) {
f("kernighan");
putchar('\n');
return 0;
}

该程序的输出是nahginrek;我认为它交换了左字符与右字符并一直这样做直到到达中间?

最佳答案

它检查 s 指向的字符是否为 ascii null (NUL) '\0',即 C 字符串中的字符串分隔符(最后一个字符)。

如果 *s'\0'

!*s 将为 true。

请注意,这与检查 s 是否为 NULL 不同,后者意味着指针 s 指向地址零。

关于c - `if(!*str) ...` 对于 `char* str` 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730314/

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