语言----指针与数组

C的指针与数组

一.关于数组:
数组明年就是地址,就数组在内存中的位置。它表示第一个元素的地址,简称,数组的首地址。

int main(){
    int arr[4] = {1,2,3,4};
    int* p1 = arr;   //arr本身的类型就是int*
    int* p2 = &arr[0];  //第一个元素的地址
    return 0;
}

二. 指针加减法:
指针加法:后移N个元素;
指针减法:前移N个元素;

int main(){
    int arr[4] = {1,2,3,4};
    int* p = arr;
    p +=1;  //后移一个元素,p为2,即arr[1];
    printf("%08X\n",&b);
}

三.指针与数组之间的关系
1.用p可以指向数组arr的任意一个元素。
p = arr +3;或者 p = &arrr[3];
2.给数组元素赋值。
arr[3] = 10 ; 或者 (arr +3) = 10;或者 int p = arr + 3; *p = 10 ;
3.把p可以当成数组来使用

int main(){
    int* p = arr[1];
    p[0] = 1;
    ----------------------------
    int a = 20;
    int* p = &a;
    p[0] = 11;  //长度为1的数组
}

4.数组的遍历

int main(){
    int arr[4] = {1,2,3,4};
    for(int* p = arr;p<arr +4;p++){
      printf("%d",*p);
    }
}

5.越界访问(所谓的越界,就是超过了这个数组的大小范围进行赋值)
int arr[4] = {1,2,3,4};
arr[4] = 10; //运行时错误
【注意】编译错误和运行错误:从字面意思就可以看出来,编译错误就是代码在编译的时候就报错,运行错误,只有在程序运行的时候才会报错,它的编译是没问题的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值