【深化】用指针表示数组元素

示例代码

#include<stdio.h>
int main(){
    int a[10];
    int *p,i;
    p = a;//很重要!!!

    printf("please enter 10 integer numbers: ");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);

    for(i=0;i<10;i++)
        printf("%d\t",a[i]);     //数组元素用数组名和下标表示
	  //printf("%d\t",*(a+i));   //通过数组名和元素序号计算元素地址,再找该元素
	  //printf("%d\t",*p++);       //用指针指向当前的数组元素

    return 0;
}

 

代码分析

(1)可以使用 a+i 表示 a[i],这里 a+i 与 a++ 不同。因为它并没有修改常量 a 的值,单独使用时,a++ 是等价于 a=a+1,它对 a 的值进行了修改。

(2)指针变量指向数组元素,注意指针变量的当前值

注意:
(1)p[i],*(p+i) 的形式必须先使 p = a。
(2)*p++ = *(p++) 与 *(++p) 作用是不相同的。前者是先取 *p 的值,然后使 p 加 1。后者是先使 p 加 1,再取 *p。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值