gpt4 book ai didi

c++ - char (*test)[] 与 char *test1[] 之间的区别以及如何优雅地初始化测试?

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

只是从 stroustrup 中练习:声明和初始化字符串数组的指针。我能做到

char *test1[]={"ddd"}

但不能

char (*test)[] ={"dfsdf"}.

这些声明之间的区别是什么以及如何初始化第二个?

最佳答案

首先是指向 char 类型的指针数组。
第二个是指向 char 类型数组的指针。

本小 code snippet 应该很好理解区别:

#include<stdio.h>
#include<string.h>
int main()
{
char *test1[]={"ddd","aaa"};
printf("[%s]",test1[0]);
printf("[%s]",test1[1]);

char arr[]={"bbb"};
char (*test2)[] = &arr;
printf("[%s]",*test2);

return 0;
}

输出:

[ddd][aaa][bbb]

test1是一个指针数组,这个数组的每个下标都指向一个字符串。
test1[0] & test1[1] 允许您获取指向的内容。

test2 是指向另一个数组的指针。取消引用指针 *test2 为您提供指向的数组。

关于c++ - char (*test)[] 与 char *test1[] 之间的区别以及如何优雅地初始化测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14494900/

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