gpt4 book ai didi

c++ - 为什么这段代码不返回 0?

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

为什么这段代码返回 -1

memcmp() 比较内存块并在构造函数中接受 3 个参数,但是当我错过第三个参数时会发生什么?

int main()
{
char ptr[] = "hello";
char ptr1[] = "hello";

int a = memcmp(ptr,ptr1);
printf("%d",a);

return 0;
}

还有以下程序在没有第三个参数的情况下突然终止:

int main()
{
char *ptr = "hello";
char *ptr1 = "hello";

int a = memcmp(ptr,ptr1);
printf("%d",a);

return 0;
}

最佳答案

对于初学者来说,memcmp() 接受三个参数:指向要比较的内存段的指针和大小。尽管代码可以用 C 编译(我认为不应该),但它肯定不能用 C++ 编译。如果编译代码,第三个参数是一个相当随机的值,并且这些字符串之后的内存不太可能相同。

关于c++ - 为什么这段代码不返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307092/

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