数组与指针与多维数组
来源:互联网 发布:不用网络的汽车游戏 编辑:程序博客网 时间:2024/06/05 21:49
首先,我们知道数组与指针是不一样的。从左值开始讲起。x=y。x在编译中就是一地址,y则是赋予这地址的内容。x是可知的,y是不可知的,y在运行时才会知道。
访问数组:
int a[100]:首先访问的是a的地址,也就是所谓的数组的起始地址,然后在起始地址加上i的值,获取地址,再取得地址中的内容。
访问指针:
int *a:首先访问a的地址,a地址的内容是另一个地址,通过访问另一个地址找到我们所需要的内容。所以访问指针比访问数组多了一层额外的提取。
所以数组和指针是很不一样的,一个是地址,一个是地址的地址。他们为什么会被混淆?是因为他们有一样的地方。
在函数形参中,数组和指针则表现的相当一致,char *argv和char argv[]是不是一样呢?其实不是一样的,只是在main函数中做形参时,argv[]被编译器默认为数组的第一个元素地址,*argv则在传值参数中,被当成指针所指向变量的值,而非变量本身,所以*argv也是一个首地址。
另外,编译器会在计算地址时自动加上不同类型的步长。所以a[i]和啊[i+1]其实距离不是1,而是4.
多维数组,并不是像矩阵那样的多维,多维数组在内存中也是线性结构。p[i][j]:如果是以一条长为n的轴来说,p[i]在i/n的点处,p[i][j]在该点的第j点处
请多指教。- 多维数组与多维指针
- 多维数组与指针
- 指针与多维数组
- 指针与多维数组
- 多维数组 与 指针
- 多维数组与指针
- 多维数组与指针
- 指针与多维数组
- 指针与多维数组
- 多维数组与指针
- 多维数组与指针
- 数组与指针与多维数组
- C++多维数组与指针
- 多维数组与指针 精析
- 多维数组与指针 精析
- 数据类型 - 多维数组与指针
- 多维数组与指针 精析
- 指针与多维数组(2)
- jquery重写友好提示对话框
- http://csharp-online.net/forum/viewtopic.php?t=352
- http://webcache.googleusercontent.com/search?q=cache:Xh34UJ65wvcJ:http://ja.w3support.net/index.php%
- 如何得到在指定视图下沿折线或曲线的展开剖面
- magento - magento 1.6 模板开发工作日志
- 数组与指针与多维数组
- http://blog.163.com/mad010@126/blog/static/12237155200841645952814/
- Android 游戏中数据的存储(上)
- 我也来说说,关于如何学好计算机
- 《当程序员的那些狗日日子》(四十三)绝缘空间
- Android中游戏的存储(下)----好久不见
- 在centos 6 64位系统上安装broadcom网卡驱动
- 加班,谁之过?
- List combining / C Macro