整型数组有结束标志吗?

  • Post author:
  • Post category:其他


答案是:没有。整型数组在声明或者定义时,它的大小就已经确定了。比如:int arr[]={1,2,3,4,5};

那么它的长度就是5;  int arr[10]={1,2,3,4,5};它的长度就是10。(未初始化的部分补0)

在我还不知道这个知识的时候,一次我在写一个求字符串长度的代码时,我突发奇想想知道这串代码可不可以求一个整型数组的长度呢?

当时求这个整型数组长度的代码是这样的:

#include<stdio.h>

int my_strlen(int arr[])
{
  if (*arr != '\0')
	return 1 + my_strlen(arr + 1);
  else
	return 0;
}
int main()
{
  int arr[10] = { 1,2,0,3,4,5 };
  int len = my_strlen(arr);
  printf("%d\n", len);
  return 0;
}

此时我脑海里是这样想的:

于是我将代码运行了一下,发现!

它的结果竟然是2!果然遇到0它停止了!

当时这真的对无知的我引发了极大的思考和困惑。哈哈,其实在后面的学习中,我才了解到,int数组是没有\0的,\0是字符,它一般用于判断字符串的结束。而整型数组的大小也根本不能这样去求。



版权声明:本文为weixin_74082492原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。