[测试]关于一维数组和二维数组与指针的某些关系

来源:互联网 发布:软件著作权作品说明书 编辑:程序博客网 时间:2024/05/17 08:10
#include<stdio.h>int main(){int a[3][4]={11,12,13,14,15,16,17,18,19,110,111,112};int s[5]={111,222,333,444,555};printf("sizeof(a):%d\n",sizeof(a));printf("sizeof(a[0]):%d\n",sizeof(a[0]));printf("sizeof(a[0][0]):%d\n",sizeof(a[0][0]));printf("a=%p\n",a);printf("a+1=%p\n",a+1);printf("*a+1=%p\n",*a+1);printf("*a=%p\n",*a);printf("*(a+1)=%p\n",*(a+1));printf("*(a+1)+1=%p\n",*(a+1)+1);printf("\n\n");int *ptr1=(&a+1);printf("%d\n",*(ptr1-1));//112int *ptr2=(&a[1]+1);printf("%d\n",*(ptr2-1));//18printf("%d\n",*a[1]);//15 a[1]是指向第二行的首地址printf("%d\n",*(a+1));//=a[1] 输出的为15的地址printf("%d\n",**(a+1));//15printf("\n");//printf("%d\n",*s[1]);//报错printf("%d\n",*(s+1));//222return 0;}

运行结果:

sizeof(a):48
sizeof(a[0]):16
sizeof(a[0][0]):4
a=0xbfc8e8f4
a+1=0xbfc8e904
*a+1=0xbfc8e8f8
*a=0xbfc8e8f4
*(a+1)=0xbfc8e904
*(a+1)+1=0xbfc8e908




112
18
15
-1077352188
15


222



原创粉丝点击