最近在学习c语言,在c语言中少了很多库函数,就比如我在求数组长度的时候,len()
不能用了,这在python中是自带的函数。
即使在c++中,求字符串长度时也能用str.length()
。c++增加了很多方便快捷的函数。
但是在c中怎么求一个数组的长度呢?
今天查了一下资料,只查到使用sizeof()
这一种方法:
int nums[] = {1, 2, 3};
int size = sizeof(nums) / sizeof(*nums);
我们都知道sizeof(nums)
求出数组的总大小,即含有所有元素的大小。
*除了定义指针变量,例如这样:
int* p = 0;
我们定义一个指针变量p,为int类型,此处有int *p
, int* p
两种写法,都是一样的。编译器会自动匹配*号和前面的数据类型。
个人更推荐int *p
这种写法,只要记得变量前面加了*
号就是指针,时刻记得前面int,char都是指定变量类型就好。
int a =0;
int *a = 0;
char b = 'c';
char *b = 'c';
言归正传,sizeof(nums)
求出数组的总大小,那么我们只需要再求出数组中单个元素的大小,前者除以后者即为数组的长度。
上面我们介绍了*
是修饰指针变量的,另外一个作用就是取值。nums数组名是数组的首地址。而加*
对首地址取值,*nums
即代表得到数组第一个元素的值,即1。1为int类型,大小为4个字节,4个Byte。
同时又因为数组中要求存储的元素的类型必须相同,所以只需要除以单个元素大小,这样我们就求出了数组的长度。
over~
粘贴一个百度回答,巩固一下。
![在这里插入图片描述](https://img-blog.csdnimg.cn/5cd0e0ac5d094b759d1dfa4cd8f61d7c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rKh5ou_6L-H5aWW5a2m6YeR55qE5bqf54mp,size_15,color_FFFFFF,t_70,g_se,x_16)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)