二维数组的各种sizeof问题

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()  
{      
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};     
int n=sizeof(a[0][0]);        
printf("a=0x%x,*a=0x%x\n",a,*a);     
printf("a size=%d,*a size=%d\n",sizeof(a),sizeof(*a));     

printf("-------------------------------------------\n");  

printf("a[0]=0x%x,*(a+0)=0x%x\n",a[0],*(a+0));      
printf("a[0] size=%d,*(a+0)=%d\n",sizeof(a[0]),sizeof(*(a+0))); 
printf("-------------------------------------------\n");      


printf("&a[0]=0x%x,&a[0][0]=0x%x\n",&a[0],&a[0][0]);     
printf("&a[0] size=%d,&a[0][0] size=%d\n",sizeof(&a[0]),sizeof(&a[0][0]));     
printf("-------------------------------------------\n");     


printf("a[1]=0x%x,a+1=0x%x\n",a[1],a+1);      
printf("a[1] size=%d,a+1=%d\n",sizeof(a[1]),sizeof(a+1));   
printf("-------------------------------------------\n");   

printf("&a[1][0]=0x%x,*(a+1)+0=0x%x\n",&a[1][0],*(a+1)+0);      
printf("&a[1][0] size=%d,*(a+1)+0 size=%d\n",sizeof(&a[1][0]),sizeof(*(a+1)+0));     
printf("-------------------------------------------\n");     


printf("a[2]=0x%x,*(a+2)=0x%x\n",a[2],*(a+2));      
printf("a[2] size=%d,*(a+2) size=%d\n",sizeof(a[2]),sizeof(*(a+2)));     
printf("--------------------------------------- ---\n");     


printf("&a[2]=0x%x,a+2=0x%x\n",&a[2],a+2);      
printf("&a[2] size=%d,a+2 size=%d\n",sizeof(&a[2]),sizeof(a+2));     
printf("-------------------------------------------\n");   


printf("a[1][0]=0x%x,*(*(a+1)+0)=0x%x\n",a[1][0],*(*(a+1)+0));      
printf("a[1][0] size=%d,*(*(a+1)+0) size=%d\n",sizeof(a[1][0]),sizeof(*(*(a+1)+0)));     
printf("-------------------------------------------\n");    


return 0;      
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值