C语言学习历程(十一)二维数组与指针的关系
2017-12-02 20:56
281 查看
下面是一个关于二维数组与指针之间,地址和值的运算输出:
*#include <*stdio.h>
{
int a[3][3]={{1,2,3},{3,4,5},{6,7,8}};
int i=0;
int j=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(“%d\t”,((a+i)+j));
}
}
printf(“%0x,%0x\n”,a,a+1);
printf(“%0x,%0x\n”,a[0],a[0]+1);
printf(“%d,%d\n”,((a+0)+1),*a[0]+1);
printf(“%0x,%0x”,*(a+1)+1,a+1);
return 0;
}
printf(“\n”);
地址即指针!
a[i]=a+i=*(a+i)=&a[i]=&a[i][0];
上面这几个地址的值都是一样的,但是它们所对应的数据类型大小却不全一样; <
4000
br>
a[i]的数据类型大小为4个字节,即a【i】+1跳过4个字节大小;
同样,其他几个依次是:
a+i:12字节;
*(a+i):4字节;
&a【i】:12字节;
&a【i】【0】:4字节;
*#include <*stdio.h>
{
int a[3][3]={{1,2,3},{3,4,5},{6,7,8}};
int i=0;
int j=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf(“%d\t”,((a+i)+j));
}
}
printf(“%0x,%0x\n”,a,a+1);
printf(“%0x,%0x\n”,a[0],a[0]+1);
printf(“%d,%d\n”,((a+0)+1),*a[0]+1);
printf(“%0x,%0x”,*(a+1)+1,a+1);
return 0;
}
printf(“\n”);
地址即指针!
a[i]=a+i=*(a+i)=&a[i]=&a[i][0];
上面这几个地址的值都是一样的,但是它们所对应的数据类型大小却不全一样; <
4000
br>
a[i]的数据类型大小为4个字节,即a【i】+1跳过4个字节大小;
同样,其他几个依次是:
a+i:12字节;
*(a+i):4字节;
&a【i】:12字节;
&a【i】【0】:4字节;
相关文章推荐
- C语言学习历程(八)数组和指针的关系及几个程序
- C语言二维数组和指针的关系
- 在c语言学习中的问题(一):数组指针,指针数组,二维数组的理解与区分
- 【黑马程序员】C语言学习笔记之指针(十一)
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用
- C语言【指针】二维数组和字符串与指针的关系
- C语言重新学习――数组与指针的关系
- 【C语言学习笔记】数组、字符串、指针
- C语言学习历程(二十一) 网络编程-服务器端创建到接收
- iOS开发学习之C语言---C10 函数指针-3
- C语言的指针学习指导
- 近来对指针基础、一二维数组的心得和linux下c语言的编程
- C语言深度剖析学习笔记-指针、数组、内存、函数
- C语言指针学习(-)
- JNA调用C语言动态链接库学习实践总结(指针模拟)
- 【学习笔记】【C语言】返回指针的函数
- 指针01 - 零基础入门学习C语言41
- C语言指针学习
- C语言中的二级指针和二维数组问题
- 浅谈学习C语言与学习C++语言的关系