gpt4 book ai didi

char数组和char指针的比较

转载 作者:太空狗 更新时间:2023-10-29 15:53:54 24 4
gpt4 key购买 nike

玩着玩着发现了一个我想不通的结果,涉及到char数组和指针。

char charArray[] = "Array";
char* charPtr1 = "Array";
char* charPtr2 = "Array";

为什么 charArray != charPtr1/2,但是 charPtr 1 == charPtr2

虽然在创建 charPtr1 时,它会创建一个临时数组并指向那里。如果是这样,为什么它们不一样?

最佳答案

char charArray[] = "Array";
char* charPtr1 = "Array";
char* charPtr2 = "Array";

why is charArray != charPtr1/2, but charPtr 1 == charPtr2?

charArray 实际上是 char charArray[6] = { 'A', 'r', 'r', 'a', 'y', 0 };,所以它是一个数组,其包含可以改变

charPtr1charPtr2 是指向 char 的指针,因此它们都不能等于 charArray(除了在 charPtr1 = charArray; 当然等之后)

事实上 charPtr1charPtr2 是编译器的一种优化,检测到文字字符串“Array”被多次使用,定义一次并使用其初始化两个变量的地址

关于char数组和char指针的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55817464/

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