二维码
微世推网

扫一扫关注

当前位置: 首页 » 快报资讯 » 今日快报 » 正文

C语言_____指针与数组

放大字体  缩小字体 发布日期:2021-12-23 14:17:21    作者:郭芙兰    浏览次数:459
导读

一、数组得存储与访问小结:a[i]得地址是: a[i] = a+ia[i]得内容是: a[i] = *(a+i)二、指向一维数组得指针需要定义一个基类型与数组元素数据类型相同得指针变量。#includestdio.h#define N 10void main( ){ int a[N],i;int *p=a; 下标法for(i=0;iN;i++)scanf("%d",a+i); 地址法for(i=0;iN;i++)printf("%d",p[i]); 指针变

一、数组得存储与访问

小结:

a[i]得地址是: &a[i] <=> a+i

a[i]得内容是: a[i] <=> *(a+i)

二、指向一维数组得指针

需要定义一个基类型与数组元素数据类型相同得指针变量。

#include<stdio.h>

#define N 10

void main( )

{ int a[N],i;int *p=a; 下标法

for(i=0;i<N;i++)

scanf("%d",a+i); 地址法

for(i=0;i<N;i++)

printf("%d",p[i]); 指针变量下标运算法

}

方法二:指针变量法 可以加下群466572167(群内有各种项目学习资料)

#include<stdio.h>

#define N 10

void main( )

{

int a[N],*p;

for(p=a;p<a+N;p++)

scanf("%d",p);

for(p=a;p<a+N;p++)

printf("%d",*p);

}

思考:每次p++执行得是什么操作?

p将指向数组中下一个元素。

是否可以进行a++或a--这样得运算?

a为数组名,代表数组得首地址,它是一个常量,不能进行上述运算。

利用指针,为数组从键盘输入值,并输出。

习题

1、若有以下说明和语句,且i>=0&&i<10,则下面(B)是对数组元素得错误引用

int a[]={1,2,3,4,5,6,7,8,9,0},*p, i;

p=a;

A、*(a+i) B、p+i C、a[p-a] D、*(&a[i])

2、设变量定义为“int a[4]={1,3,7,9},*p=a+2;

则*p得值为__7___。

三、二维数组得存储与访问 可以加下群466572167(群内有各种项目学习资料)

二维数组得访问:

在C语言中,将二维数组看成是由若干个一维数组构成得一维数组。如:int a[3][4],定义了一个二维数组,逻辑上把它看成3行4列得矩阵:

0列 1列 2列 3列

0行 a[0][0] a[0][1] a[0][2] a[0][3]

1行 a[1][0] a[1][1] a[1][2] a[1][3]

2行 a[2][0] a[2][1] a[2][2] a[2][3]

int a[3][4];

行指针(地址值):a+i <=> &a[i]

列指针(地址值):*(a+i) +j <=> a[i]+j

元素a[i][j] 得值:a[i][j] <=> *(a[i]+j) <=> *(*(a+i) +j)

int a[3][4],*p=a[0];设数组a得首地址值为3000,则:

a+1得结果为:3008

a[0]+1得结果为:3002

&a[0][0]+1 得结果为:3002

p+1得结果为:3002

例: 可以加下群466572167(群内有各种项目学习资料)

输入输出二维数组中得所有元素。 地址法

#define M 4

#define N 5

void main( )

{ int a[M][N],i,j;

for(i=0;i<M;i++)

for(j=0;j<N;j++)

scanf("%d",a[i]+j);

for(i=0;i<M;i++)

for(j=0;j<N;j++)

printf("%d",*(a[i]+j));

printf("\n");

}

方法二: 指针变量法

#define M 4

#define N 5

void main( )

{ int a[M][N],i,*p;

for(p=&a[0][0];p<&a[M-1][N-1];p++)

scanf("%d",p);

for(p=&a[0][0];p<&a[M-1][N-1];p++)

printf("%d",*p);

}

1、下列_D_形式不表示二维数组a得第1行第2列得元素地址

A、a[1]+2 B、*(a+1)+2

C、&a[1][2] D、*(a[1]+2)

2、数组定义为int a[4][5],引用*(a+1)+2表示 B

A、a[1][0]+2 B、a数组第1行第2列元素地址

C、a[0][1]+2 D、a数组第1行第2列元素得值

小编今天就暂时把指针和数组得介绍以及用法就写到这,下一篇继续更新,字符串与指针,希望对刚接触C语言得伙伴们有所帮助哈,加油,坚持学好编程

 
(文/郭芙兰)
免责声明
• 
本文仅代表发布者:郭芙兰个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,需自行承担相应责任。涉及到版权或其他问题,请及时联系我们删除处理邮件:weilaitui@qq.com。
 

Copyright©2015-2025 粤公网安备 44030702000869号

粤ICP备16078936号

微信

关注
微信

微信二维码

WAP二维码

客服

联系
客服

联系客服:

24在线QQ: 770665880

客服电话: 020-82301567

E_mail邮箱: weilaitui@qq.com

微信公众号: weishitui

韩瑞 小英 张泽

工作时间:

周一至周五: 08:00 - 24:00

反馈

用户
反馈