sizeof() 之 数组

在平时的编程中,我们会经常用到数组,并且需要知道数组的长度,有时我们可以明确的知道数组的长度,但有时并不,这时,可以借用sizeof(),来获得数组的长度,如下:

arrayLength = sizeof(array) / sizeof(array[0]);

在使用sizeof() 获得数组长度时,需要注意,如果数组array 和 sizeof() 的使用 是在同一个文件中,那么array在定义时,不需要明确数组长度;如果他们在不同的文件中时,则array在定义时必须明确长度,否则会报错 “ incomplete type is not allowed ”。

例:

a.c 文件中定义了数组array

int array[] = {0,1,2,3,4,5,6,7,8,9};

在a.c文件中我们可以用sizeof() 来获得array的长度

arrayLength = sizeof(array) / sizeof(array[0]);

或者

arrayLength = sizeof(array) / sizeof(int);

如果此时我们在b.c文件中使用同样的方法来获得array的长度,那么在编译时会报"  incomplete type is not allowed "错误

时间: 2024-10-25 17:24:06

sizeof() 之 数组的相关文章

C++面试题5:建议在函数里面不要用sizeof算数组的大小

C++面试题5:建议在函数里面不要用sizeof算数组的大小 #include <iostream>using namespace::std; void foo(const int[]); int main() { int arr[3] = {1,2,3}; cout<<"in main array size: "<<sizeof(arr)/sizeof(int)<<endl; foo(arr); } void foo(const int

【c语言】strlen与sizeof对数组和指针的求法

// strlen与sizeof对数组和指针的求法 #include <stdio.h> #include <string.h> int main() { char *pcColor = "12345678"; char acColor[] = "12345678"; printf("%d\n", strlen(pcColor));//8 求字符串的大小 printf("%d\n", strlen(ac

sizeof在数组或者变量中的应用

#include<stdio.h> int main() { int a=4; int arr[10]={0}; printf("%d\n",sizeof(arr));//不传参,输出数组总字节长度,结果为:40 printf("%d\n",sizeof(arr[0]));//数组第一个元素所占字节大小,结果为4 printf("%d\n",sizeof(arr[10]));// 结果为4 printf("%d\n"

你必须知道的指针基础-4.sizeof计算数组长度与strcpy的安全性问题

一.使用sizeof计算数组长度 1.1 sizeof的基本使用 如果在作用域内,变量以数组形式声明,则可以使用sizeof求数组大小,下面一段代码展示了如何使用sizeof: int nums[] = {11,22,33,44,55,66}; int i; // sizeof(nums) 计算nums数组的总字节数 // sizeof(int) 计算int类型所占用的字节数 int length = sizeof(nums)/sizeof(int); for(i=0;i<length;i++)

sizeof与数组长度

代码: #include <stdio.h> #include <stdlib.h> #define LENGTH 10 void func(int arr[]); int main(void) { int arr[LENGTH] = { 0 }; // sizeof 数组名:整个数组大小 // sizeof 数组名[0]:数组第一个元素大小 size_t length = sizeof arr / sizeof arr[0]; printf(length == LENGTH ? 

妙用sizeof获得数组长度

总所周知,sizeof关键字返回一个类型的长度.于是,一些聪明的人就想出了用sizeof(array) / sizeof(array[0])来获取array数组的长度.这个表达式十分巧妙.第一个sizeof(array)返回array的长度,第二个sizeof(array[0])返回array每个元素的类型的长度.将数组的总长除以其中每个元素的长度,就可以得出该数组的长度. 写个小程序试一下,可行.那么,指针数组行不行呢? 咦,这次怎么失败了?用printf看一下. int类型的array[0]

C++之sizeof判断数组元素个数

sizeof用于判断数据占据的内存字节数. 如:sizeof(int)的为4. 因此,判断数组的元素个数写法如下: num=sizeof(array)/size(a[0]); 原文地址:https://www.cnblogs.com/cff2121/p/9846751.html

sizeof ()求指针和数组时的不同

sizeof()求取参数在内存中的字节数大小. sizeof在对指针和数组的求取中需要注意的地方: #include<stdio.h> int main() { char *p = NULL; char arr[10]; char str[]="hello"; int a, b, d, e, f, g,h; a = sizeof(*p);//指针类型.    a=1; b = sizeof(p);//sizeof求任何指针都是4个字节. b=4; d = sizeof(ar

sizeof 数组名字,数组指针

int *a = new int[15]; sizeof(a)//在64位机器上,8 sizeof(a)/sizeof(int) //2 ----- int a[15]; sizeof(a)//15*4=60 sizeof(a)/sizeof(int)=15 -----所以数组名并与完全等同于指针; 注意 数组名字 在参数传递的过程中,会退化为指针,这也是为什么指针作为参数传递,需要一个长度参数. sizeof(数组名字)//是返回数组占用的内存大小 sizeof(指向数组的指针)//返回的是指