C语言sizeof与数组中的使用详解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、sizeof常见的使用方法:
  • 二、sizeof在数组的使用详解:
  • 总结


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、sizeof常见的使用方法:

示例:
int a=10;

int arr=[1,2,3,4,5];

char str[]=“hello,c”; //这里面还有‘/0’大家不要忘记!!!

printf(“a=%d,arr=%d,str=%d\n”,a,arr,str)

结果是:a=4,arr=24,str=8

二、sizeof在数组的使用详解:

代码如下(示例):


#include 
int main()
{
	int a[] = { 1,2,3,4 };
	printf("%d\n", sizeof(a));//16
	
	printf("%d\n", sizeof(a+0));
	// 4/8  a+0是第一个元素的地址  sizeof(a+0)计算地址大小
	
	printf("%d\n", sizeof(*a));
	//4  *a是数组第一个元素的,sizeof(*a)计算第一个元素大小
	
	printf("%d\n", sizeof(a+1)); 
	//4/8 a+1是第二个元素的地址,sizof(a+1)计算的是地址的大小
	printf("%d\n", sizeof(a[1]));
	//4 计算的的是第二个元素的大小

	printf("%d\n", sizeof(&a));
	//4/8 &a虽然数组的地址,但是也是地址,所以计算的是地址的大小
	
	printf("%d\n", sizeof(*&a));
	//16 &a——int(*p)[4]=&a;数组指针   *&可以理解为相互抵消了  
	//a单独放在sizeof中计算的是数组的大小

	printf("%d\n", sizeof(&a+1));
	//4/8  &a+1是数组后面空间的地址  是地址那么就是4/8
	
	printf("%d\n", sizeof(&a[0]));
	//4/8  &a[0]第一个元素地址
	
	printf("%d\n", sizeof(&a[0]+1));
	// 4/8  &a[0]+1第二个元素的地址 
	return 0;
}

总结

1.sizeof(数组名)——数组名表示整个数组,计算的是整个数组的大小。
2.&数组名——数组名表示整个数组,取出的也是整个数组的大小。
(除此之外所有的数组名都是数组首元素的的地址)

你可能感兴趣的:(C语言sizeof函数,c语言,c#,c++)