动态数组可以使用动态内存分配来实现:
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语言,结构体数组的长度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)