指针和数组

//
//  main.c
//  C语言学习


#include <stdio.h>


int main(int argc, const char * argv[]) {
   
    //数组名就是数组的地址,数组的地址就是数组首元素的地址
    int ages[3] = {1,3,5};
    printf("ages = %p\n",ages); //ages = 0x7fff5fbff7ac
    printf("&ages[0] = %p\n",&ages[0]); //&ages[0] = 0x7fff5fbff7ac
    
    //指针是专门用于保存地址
    /*
     由于数组的首元素的地址就是数组的地址,所以定义一个指针指向数组其实就是定义一个指针指向数组的首元素。
     所以,数组的首元素是什么类型,那么指向该数组的指针就应该是什么类型
     */
    int *p = ages;
    printf("p = %p\n",p); //p = 0x7fff5fbff7ac
    
    //如何利用指针操作数组
    ages[0] = 998;
    printf("ages[0] = %i\n",ages[0]); //ages[0] = 998
    
    int *p1 = ages; //定义一个指向ages数组的指针p1
    p1[0] = 999;
    printf("ages[0] = %i\n",ages[0]); //ages[0] = 999
    
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值