定义char ary[]=“CIHINA”,则数组所占的空间为几个字节,为什么

如题所述

CIHINA共6个字符加上字符串结束符,共7个字符,char类型为1字节,所以占用空间是7*1=7字节。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-25
有数组定义:char array[]="china";则数组array所占的空间为6。
分析过程:
"china"是个字符串常量
字符串是以\0为结束符的字符数组,\0是个不可视字符,故"china"所占的空间为:5+1=6。
char array[]="china"; 这里定义数组array,并用"china"进行初始化。定义数组时,没有指定数组元素个数,则,数组array所占空间由初始化数据所确定。
因此,array所占空间就是"china"所占空间的大小。本回答被提问者和网友采纳

sizeof为什么写数组名就能算出数组元素的所占的空间?
sizeof是编译时赋值的,不是运行时赋值的。编译时要为数组分配存储空间,编译器当然知道它的空间大小。C99支持动态定义数组和sizeof运行时赋值,VC6不支持C99。int n;n=10;charary[n];\/\/C99也支持数组的动态定义printf("%d\\n",sizeof(ary));\/\/ok.输出10 ...

c语言里:sizeof怎样用法?
5、定义一个数组,使用sizeof计算出数组的大小。6、最后编译运行程序,便能输出数组的大小。

C++里如何把char a[2]中数据赋给WORD类型数据组成一个字数据~
=3。这里函数参数a3已不再是数组类型,而是蜕变成指针,相当于char* a3,为什么仔细想想就不难明白,我们调用函数foo1时,程序会在栈上分配一个大小为3的数组吗不会!数组是“传址”的,调用者只需将实参的地址传递过去,所以a3自然为指针类型(char*),c3的值也就为4。7. 结构体的sizeof 这是初学者问得最多的一...

二维数组中b是b0的地址吗
你指的是b[0]吧,答案是:是 但是地址类型不同,地址类型不同意味着:该地址开始的数据宽度不同(单位是字节)。假设有一个int b[3][3]的数组,编译之后地址为1000,那么它所占用空间为1000-1035,每个元素4个字节(int),其中 1000-1011为第一行(行标0)1012-1023为第二行(行标1)1024-103...

sizeof的用法
功能是返回一个变量或者类型的大小(以字节为单位);在 C 语言中,sizeof() 是一个判断数据类型或者表达式长度的运算符。1、Pascal中的用法:如果longint改为Integer,也输出(Pascal中longInt和Integer都是4字节);2、C语言中用法:判断数据类型长度符的关键字 sizeof (类型说明符)sizeof 表达式 ...

C语言 答案?为什么?关于sizeof()运算符详细说一下
char c;int i;};问sizeof(s1)等于多少聪明的你开始思考了,char占1个字节,int占4个字节,那么加起来就应该是5。是这样吗你在你机器上试过了吗也许你是对的,但很可能你是错的!VC6中按默认设置得到的结果为8。Why为什么受伤的总是我请不要沮丧,我们来好好琢磨一下sizeof的定义——sizeof的结果等于对象或者...

C语言中 sizeof 运算的值是在编译时还是运
指针变量的sizeof值与指针所指的对象没有任何关系,正是由于所有的指针变量所占内存大小相等,所以MFC消息处理函数使用两个参数WPARAM、LPARAM就能传递各种复杂的消息结构(使用指向结构体的指针)。 数组的sizeof 数组的sizeof值等于数组所占用的内存字节数,如: char a1[] = "abc"; int a2[3]; sizeof( a1 ); ...

相似回答