c语言用指针改变数组值,C语言—利用指针引用数组

本文介绍了如何在C语言中使用指针引用数组,强调数组名代表首元素地址,不能直接引用整个数组。通过示例展示了如何通过指针进行数组元素的加减运算,并提供了代码实例演示如何通过指针遍历并打印数组元素。同时,解释了指针算术运算的含义及其在数组元素引用中的应用。
摘要由CSDN通过智能技术生成

今天,小编我来简单的讲解一下如何用指针去引用数组。能力有限,水平一般,如果小编我有讲错的地方,还请老铁们告知我,日后小编我好一一的改正。好了废话不多说了,之前我们了解了什么是数组,如何引用,我们又了解了什么是指针,怎么使用指针,那二者是否可以一同使用那,答案是当然的了。那么我们需要知道数组元素的指针是什么?换句话说我们需要知道数组在指针中的存在形式是什么。

aa6e2c2beab2efc2a695e9502989418b.png

数组元素的指针;一个变量有地址,一个数组包含若干元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。 指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放到一个指针变量中)。 所谓数组元素的指针就是数组元素的地址。例如;

int a[10]={1,2,3,4,5,6,7,8,9,10}; //定义包含为10个元素的数组a

int *p; //定义p为指向整形变量的指针变量

p=&a[0]; //将a【0】元素的地址赋给指针变量p

!注意;程序中的数组名不代表整个数组,只能代表数组首元素的地址,换句话说,程序中的数组只能一一引用,不能一口气直接引用整个数组。

那么,我们该如何引用数组元素进行计算那。

在引用数组元素时常常会遇到指针的算术运算。有人会提出问题,对数值型数据进行算术运算(加、减、乘、除等)的目的和含义是清楚的,而在什么情况下需要用到对指针型数据的算术运算其含义是什么。我们反复的说明指针就是地址。对地址进行赋值那当然是没问题的,但是对地址进行运算是什么意思那?显然,仅仅对地址进行加减乘除是没有意义的,那么我们要进行加减乘除,就必须在一定条件下进行。我们虽然不能用地址进行加减乘除,但是我们可以利用地址所指向的指针变量,进行加减乘除。从而将运算后的数组,通过指针的方式再赋予另一个地址。因此,当我们了解了如何运算,那么我们就可以去引用数组元素,进行运算了。

1880d09563f1bf2d15813e51775ff013.png

在指针已指向一个数组元素时,可以对指针进行以下运算:

加一个整数(用十或十=),如p十1;

减一个整数(用一或一=),如p-1;

自加运算,如p十十,十十p;

自减运算,如p一一,--P.

两个指针相减,如p1-p2(只有pl和p2都指向同一数组中的元素时才有意义).

分别说明如下:如果指针变量p已指向数组中的一个元素,则p十1指向同一数组中的下一个元素,p一1指向同一数组中的上一个元素。

引用数组元素,有以下两种方法;

下标法;如a[i];指针法;如*(a+i)。其中a是数组名,p是指向数组元素的指针变量。利用这个我们就可以编译一个程序;

include

int main()

{

int i,a[10],*p=a;

printf("please enter 10 integer number: ");

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

scanf("%d",p++);

p=a;

for(i=0;i<10;i++,p++)

printf("%d",*p);

printf("\n");

return 0;

}

这个就是将数组a[10]一一赋给p,显然这是一个简单的数组与指针的和程序。

当然了,还有许多的融合方法。 大家需要去探究。

de162cda8f39c432c7d216b9ace4ed26.png

举报/反馈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值