C 下标法 首地址法 指针变量法
来源:互联网 发布:淘宝登录框打不开 编辑:程序博客网 时间:2024/05/17 06:42
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
指针法其实就是行指针
#include <iostream>
using
namespace
std;
void
output_Subscript(
int
p[ ][4],
int
n);
void
output_Line(
int
p[ ][4],
int
n);
void
output_Column(
int
*p,
int
n);
int
main()
{
int
a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
cout<<
"(1)下标法进行二维数组输出"
<<endl;
output_Subscript(a,3);
cout<<
"(2)行指针法进行二维数组输出"
<<endl;
output_Line(a,3);
cout<<
"(3)列指针法进行二维数组输出"
<<endl;
output_Column(a[0],12);
return
0;
}
void
output_Subscript(
int
p[ ][4],
int
n)
{
int
i,j;
for
(i=0;i<n;i++)
{
for
(j=0;j<4;j++)
cout<<p[i][j]<<
" "
;
cout<<endl;
}
}
void
output_Line(
int
p[ ][4],
int
n)
{
int
i,j;
for
(i=0;i<n;i++)
{
for
(j=0;j<4;j++)
cout<<*(*(p+i)+j)<<
" "
;
cout<<endl;
}
}
void
output_Column(
int
*p,
int
n)
{
int
i;
for
(i=0;i<n;i++)
{
cout<<*(p+i)<<
" "
;
if
((i+1)%4==0)
cout<<endl;
}
}
首先数组的访问有三种形式:1)下标法;2)首地址法;3)指针变量法。这里我们先分析首地址法。
假设有一个二维数组a[3][4],a就是首地址,他是一个指针是一个常量,指向第一个元素的地址,也就是指向第一行的首地址,是指首行一整行,并不是指某个具体元素。那么我们称之为“行指针”。同理:a+0,a+1,a+2,都是行指针如下表所示。
但我们发现光有行指针是不能对列元素进行访问的。所以我们再来看a[0],他也就是这个数组的首地址,也就是第一个元素的地址,只不过指针方向是指向列的方向。也就是a[0]+0。a[0]和a[0]+0都是指具体的元素,那么我们称之为“列指针”,如下表所示。
那么两个概念之间的具体转换是:
*行指针----列指针
&列指针----行指针
对应关系如下表所示
根据以上转换公式:
对于元素a[1][2],其地址用列指针表示为a[1]+2,等价表示为*(a+1)+2,那么内容是*(*(a+1)+2);
太给力了,你的回答完美地解决了我的问题,非常感谢!
http://zhidao.baidu.com/link?url=yqLh777qX395lbkAbm2PmWHuB7kXrKPsL9vKb0LbhAlAG0r9RtUJr2NIGWwLvkFrN-WMJPwc45L7aW-xTvaM94mPxGY4mz486PMX-rdGDt3
提问者评价
0 0
- C 下标法 首地址法 指针变量法
- 使用下标法,通过数组名计算数组元素的地址,指针变量指向数组元素输出数组的值
- 指针变量和指针变量的地址(c/c++)
- C语言 静态变量、全局变量、局部变量、指针变量 地址
- 冒泡排序:分别用下标法和指针法做
- c++ 数组函数传参 指针下标法
- 指针++,指针记录指针地址,负下标引用
- c++ 基础 指针访问数组两种方法 下标法 指针法
- 三种方法进行二维数组遍历输出---下标法、行指针、列指针
- 指针指向变量的首地址
- c 指针与首地址
- 变量的指针地址
- 指针变量与变量地址
- 漫谈C指针第二讲---变量赋值与取地址
- c语言中const 类型变量地址赋值给指针。
- C语言输出指针变量地址以及指向变量的地址
- C语言中的指针与下标
- C++Primer 笔记 -- 指针和下标
- HDU-1002-大数相加
- 初学wix遇到的问题以及解决方案
- mybatis的 增删改查
- 1899: 985的最大和难题
- POJ - 2774 - Long Long Message(后缀数组)
- C 下标法 首地址法 指针变量法
- Dashboard – Kubernetes的全功能Web界面
- Solaris 启动/停止 ftp
- XCode编译速度慢的处理方法
- 关于json的知识点
- Intent和IntentFilter详解
- 常用工具的备份
- UIPower视觉设计 - 《UI的革命》文字版
- 中文字符编码标准+Unicode+Code Page