gpt4 book ai didi

c - 将 sizeof 与 char *array[] 一起使用

转载 作者:行者123 更新时间:2023-11-30 19:56:23 25 4
gpt4 key购买 nike

我是编程新手。现在我正在学习CJava

我有一个像这样的数组 -

char *array = {"zero", "one", "two", "three"};  

从此链接我可以像这样打印数组内容 -

printf("%s %s", array[0], array[1]); //zero one  

但我的问题是如何打印 array[0]array[1] 等引用的长度。我知道我可以做这样的事情 -

printf("%d\n", sizeof("zero");  

但是我可以使用array变量本身打印大小吗?

我尝试过不同的方式,例如 -

printf("%d\n", sizeof(array[0]);  //4
printf("%d\n", sizeof(*array[0]); //1

但每次我都得到错误的答案。

谢谢

最佳答案

数组中每个元素的大小相同,因为该数组被声明为指针数组

char * array[] = {"zero", "one", "two", "three"};  
^^^^^^

(注意你必须使用记录数组[])

即数组的每个元素都有类型 char *相应地,在程序运行环境中它的大小等于4。

实际上,您想要获取数组元素指向的字符串文字的大小。为此,您可以使用标准 C 函数 strlen在 header <string.h> 中声明该函数将返回字符串文字中直到终止零字符的字符数。

printf( "%zu\n", strlen( array[0] ) ); // returns 4 for "zero"
printf( "%zu\n", strlen( array[1] ) ); // returns 3 for "one"

关于c - 将 sizeof 与 char *array[] 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30551090/

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