关于c++的题
哪位高手能告诉我下面那些题该如何做悬赏分:5|离问题结束还有14天23小时|提问者:西坑的我元素类型为int的数组a[10]共占用____字节的存储空间,其中a[5]元素...
哪位高手能告诉我下面那些题该如何做
悬赏分:5 | 离问题结束还有 14 天 23 小时 | 提问者:西坑的我 元素类型为int的数组a[10]共占用____字节的存储空间,其中a[5]元素的字节地址为______。
元素类型为double的二维数组a[4][6]共占用____字节的存储空间,其中a[2][5]元素的字节地址为________。
元素类型为char的二维数组a[10][30]共占用____字节的存储空间,其中a[3][4]元素的字节地址为________。 展开
悬赏分:5 | 离问题结束还有 14 天 23 小时 | 提问者:西坑的我 元素类型为int的数组a[10]共占用____字节的存储空间,其中a[5]元素的字节地址为______。
元素类型为double的二维数组a[4][6]共占用____字节的存储空间,其中a[2][5]元素的字节地址为________。
元素类型为char的二维数组a[10][30]共占用____字节的存储空间,其中a[3][4]元素的字节地址为________。 展开
1个回答
展开全部
你好。
一维数组和二维数组在C++里是连续存放的。int double char在不同的操作系统可能占的字节不同。具体可以使用sizeof获得。这里认为int 是32位,占4字节,double占8字节,char占1字节。
而根据a[i]=*(a+i),a[i]的字节地址 = a[0]的地址 + i * 数组元素类型所占的字节数。
解答:
int a[10]占用10*4 = 40字节,a[5] = *(a+5),所以a[5]的字节地址为a+5*4=a+20
double a[4][6]占用4*6*8=192字节,a[2][5]=*(a+2*6+5),所以a[2][5]的字节地址为a+17*8=a+136
char a[10][30]占用10*30*1=300字节,a[3][4]=*(a+3*30+4),所以a[3][4]的字节地址为a+94*1=a+94
一维数组和二维数组在C++里是连续存放的。int double char在不同的操作系统可能占的字节不同。具体可以使用sizeof获得。这里认为int 是32位,占4字节,double占8字节,char占1字节。
而根据a[i]=*(a+i),a[i]的字节地址 = a[0]的地址 + i * 数组元素类型所占的字节数。
解答:
int a[10]占用10*4 = 40字节,a[5] = *(a+5),所以a[5]的字节地址为a+5*4=a+20
double a[4][6]占用4*6*8=192字节,a[2][5]=*(a+2*6+5),所以a[2][5]的字节地址为a+17*8=a+136
char a[10][30]占用10*30*1=300字节,a[3][4]=*(a+3*30+4),所以a[3][4]的字节地址为a+94*1=a+94
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询