有一个数组,C语言可以怎么样知道它的长度

有一个数组,C语言可以怎么样知道它的长度,第1张

动态数组可以使用动态内存分配来实现:

inta[]

然后通过

sizeof(a)/sizeof(int)

获得。

具体代码可能有出入,仅作思路说明。

sizeof命令中,

一、如果参数是指针变量(无论什么类型的指针)其结果都是4

二、如果参数是是数组,会返回数组所占空间的大小,即:int a[n] ; sizeof(a)=nsizeof(int) ;

三、如果参数是个变量类型,则会返回这个类型所占空间的大小。sizeof(char)=1 sizeof(int)=4 sizeof(double)=8 具体一个变量类型所占的空间大小与机器类型有关系,如32位机long占4字节,而64位机long占8字节。

你用malloc或者是百calloc函数分配即可。

int

a

=

10;

struct

NODE

{

int

value;

int

next;

};

int

main()

{

struct

NODE

arr

=

(struct

NODE)malloc(asizeof(struct

NODE));//请求获取内存

//

//程序的度具体 *** 作

//

free(arr);//用完后记得归还内存

return

0;

}

malloc给你分配a个大小为struct

NODE的空间,问也就相当于一个结构体数组,但是用完后要用free函数释放你想答系统申请的内存。

对于申请长版度可变的数组,只能动态分配,也就是使权用malloc或者calloc函数分配。

数组长度都是用静态量设定的,也就是说编译阶段就确定了。

int a[10];

printf("%d", sizeof(a)/sizeof(int));

这就能知道长度

你好

应该这样理解

首先,就c语言来讲,字符串的实现一般使用数组,例如

char

s[]

=

"hello";

hello里面有五个字符

分别是

h

e

l

l

o

由于c语言规定在存放字符串的数组里要以字符串结束符来结束

也就是‘\0’

所以上面定义中的数组s长度为字符总个数5

加上一个结束符‘\0’

也就是6

那么

字符串的长度就是5

但该数组s的长度就是6

至于通俗的数组长度,应该就指数组里面可存放元素的个数

例如char

s[100]

=

"hello";

虽然字符串s的长度为5

但这时数组长度就为100

希望能明白

以上就是关于有一个数组,C语言可以怎么样知道它的长度全部的内容,包括:有一个数组,C语言可以怎么样知道它的长度、C语言,关于求数组长度的问题!、C语言,结构体数组的长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9737470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存