用指针法输入与输出vb二维数组输入输出中的各元素。

输入/输出一维数组的各元素
方法一:数组法——用a[i]形式法访问数组元素
int main()
int i,a[10],*ptr=a;
for(i=0;i<=9;i&#43;&#43;)
scanf("%d",&a[i]);
for(i=0;i<=9;i&#43;&#43;)
printf("%4d",a[i]);
printf("\n");
方法二:指针法——用*(ptr&#43;i)形式间接访问的方法来访问数组元素
int main()
int i,a[10],*ptr=a;
for(i=0;i<=9;i&#43;&#43;)
scanf("%d",ptr&#43;i);
for(i=0;i<=9;i&#43;&#43;)
printf("%4d",*(ptr&#43;i));
printf("\n");
int main()
int i,a[10],*ptr=a;
for(i=0;i<=9;i&#43;&#43;)
scanf("%d",ptr&#43;&#43;);
//指针变量重新指向数组首地址
for(i=0;i<=9;i&#43;&#43;)
printf("%4d",*ptr&#43;&#43;);
printf("\n");
方法三:数组名法
用*(a&#43;i)形式访问数组元素
int main()
int i,a[10],*ptr=a;
for(i=0;i<=9;i&#43;&#43;)
scanf("%d",a&#43;i);
for(i=0;i<=9;i&#43;&#43;)
printf("%4d",*(a&#43;i));
printf("\n");
方法四:指针下标法
用ptr[i]形式访问数组元素
int main()
int i,a[10],*ptr=a;
for(i=0;i<=9;i&#43;&#43;)
scanf("%d",&ptr[i]);
//指针变量重新指向数组首地址
for(i=0;i<=9;i&#43;&#43;)
printf("%4d",ptr[i]);
printf("\n");二维数组与指针_百度文库3行4列二维数组,c++编程题,用一维数组输出地址,用指针输出每一个元素的值_编程_色泽数码解答网
3行4列二维数组,c++编程题,用一维数组输出地址,用指针输出每一个元素的值
编辑: 色泽数码解答网 &&&来源:用户发布&&&发布时间:&&&查看次数:27
求解!3行4列二维数组,c++编程题,用一维数组输出地址,用指针输出每一个元素的值?感激!网友回答endl,&setw(20)&3&&&for(j=0;&cout&using&i++){cout&void&nbsp.&iomanip&int&&&lt,&i+1&3;&nbsp,&{4;i&for(i=0;&lt,&&2;5};&2;&&&lt://f.iostream&&=&nbsp,&&2&&i)&nbsp:n&quot,12}
}}int main(){
int a[3][4]={
printf(&quot,4}。#include&i&lt,
{9,8};12;&#92。不太知道你这个是不是这个意思;
printvalue(a);stdio,6;i&lt,11;).h&gt,&
for(int i=0,(int)p++),3;
for(int i=0,*p++);i++)
return 0;void printvalue(int a[3][4]){
int *p=a[0],7;12
更多相关内容
本站内容来自网友发布,本站无法保证其部分内容的正确性,请用户一定仔细辨别。
[] &&[联系QQ:885&971&98] &
沪ICP备号&C语言上机实验例题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言上机实验例题
上传于|0|0|文档简介
&&C语言上机经典实验例题――梳理汇总
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩7页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢二维数组的两种访问方式 - acodewarrior - 博客园
例1:& int arr[4][5]; &int *p;&p=arr[0];//正确
arr[0]是int一维数组,arr[0]这个一维数组的各元素才是基本的int数据类型
下面的写法:& char arr[4][5]={"abc","def","ghi","jkl","mno"};& char *p=arr[0];& for(i=0;i&20;i )& printf("%c", *(p i) ); //仔细观察输出的值是怎样变化的&
1、必须使这个指针指向与其对应的字符型数据类型;&
2、指针每增加一个单位的地址值 。
printf()语句输出的结果为" abcdefghijklmno" &&下面举一个整型指针的例子:& int arr[3][3]={ {1,2,3},{4,5,6},{7,8,9}};& int *p=arr[0];&for(i=0;i&9;i )& printf("%d", *(p i)); // 逐个的输出数组元素
一个二维数组的指针它有哪些特点:& 一个二维数组,它的每一个数组元素都是一个一维数组,
一个整型二维数组可以写为:& int arr[3][3]; 即 {arr[0], arr[1], arr[2] }& 指针 p指向arr[0],& 指针 p +1 指向arr[1] ,指针 p +2指向arr[2],
也就是指针每移动一个单位的地址就指向下一个一维数组,
实际上移动一个一维数组的长度即3个整型量。
那么这个指针可定义为如下形式:& int (* p) [3] ; // 定义了一个指向二维数组的指针,这个二维数组中的一维 数组有3个元素。& p= // 把二维数组的地址赋给指针 p& char arr[3][4]={"abc","def","ghi"};& *(p +0) //是数驵 a[0] 的首地址 printf("%s", *p); 输出字符串 &"abc"& *(p +1) //数组a[1]的首地址 printf("%s", *(p 1)); 输出字符串 "def"& *(p +2) //数组 a[2]的首地址 printf("%s",*(p 2)); 输出字符串 "ghi"
如果要用这个二维数组的指针逐个的输出字符可以写为:& *(*(p +0) +0) //第一个字符 a& *(*(p +0)+ 1) //第二个字符 b& *(*(p +0) +2) //第三个字符 c& *(*(p +0) +3) //第四个字符 d& *(*(p +0) +4) //第五个字符 e& .................. 依此类推
当指针指向结构时的情形。。。
一个结构数组,三个结构:&struct student
}stru[3]={{1,"abc"},{2,"def"},{3,"ghi"}};&
struct student *p=
p 0 //第一个结构的地址& p 1 //第二个结构的地址& p 2 //第三个结构的地址
定义一个二维数组:&inta[3][4];表示二维数组有三行四列共12个元素,在内存中按行存放,每行四个元素a是二维数组的首地址,
&a[0][0]既可以看作数组0行0列的首地址,同样还可以看作是二维数组的首地址,
a[0]是第0行的首地址,当然也是数组的首地址。
同理a[n]就是第n行的首址;&a[n][m]就是数组元素a[n][m]的地址。把二维数组看成是由n行一维数组构成,将每行首地址传递给指针变量,行中的其余元素均可由指针来表示。
用地址法来表示数组各元素的地址。对元素a[1][2],&a[1][2]是其地址,a[1]+2也是其地址。
分析a[1]+1与a[1]+2的地址关系,它们地址的差并非整数1,而是一个数组元素的所占位置2,原因是每个数组元素占两个字节。对0行首地址与1行首地址a与a+1来说,地址的差同样也并非整数1,是一行,四个元素占的字节数8。由于数组元素在内存的连续存放。给指向整型变量的指针传递数组的首地址,则该指针指向二维数组。int *ptr,a[3][4];&若赋值:ptr=a;则用ptr++就能访问数组的各元素。
//用地址法输入输出二维数组各元素。#includemain(){& & &int a[3][4];& & &int i,j;& & &for(i=0;i&3;i++)& & & & & for(j=0;j&4;j++)& & & & & & & &scanf("%d",a[i]+j);/*地址法*/先输行,一行满了之后再输下一行& & &for(i=0;i&3;i++)& & {& & & & &for(j=0;j&4;j++)& & & & &printf("%4d",*(a[i]+j));/**(a[i]+是j地)址法所表示的数组元素*/& & & & &printf("\n");& & &}}运行程序:输入:1 2 3 4 5 6 7 8 9 10 11 12
1 2 3 45 6 7 89 10 11 12
//用指针法输入输出二维数组各元素。
//把二维数组看作是展开的一维数组#includemain(){& & & &int a[3][4],*& & & &int i,j;& & & &ptr=a[0];& & & &for(i=0;i&3;i++)& & & & & &for(j=0;j&4;j++)& & & & & & & &scanf("%d",ptr++);/*指针的表示方法*/& & & &ptr=a[0]; &//重新指向数组第0行& & & &for(i=0;i&3;i++)& & & &{& & & & & & for(j=0;j&4;j++)& & & & & & & & printf("%4d",*ptr++);& & & & & & printf("\n");& & & &}}
随笔 - 123

我要回帖

更多关于 二维数组的指针表示法 的文章

 

随机推荐