C语言 数组指针

**

一点点记录,不是教学

**
/* 下面说了那么多,越看越晕,不看也行。
* 总结就是
* 想要指向变量a的指针 那就 int * p= &a; 而普通变量名a不是地址,要加取地址符&
* 用法 *p == a;
* 想要指向数组a[]的指针 那就 int * p= a; 因为数组的名字a就是地址
* 用法 p[i] == a[i]; 相当于给数组a的名字换成了p
**/

//
// Created by Tony on 2023/12/10.
//
#include <stdio.h>
int main(){
   
    /* 下面说了那么多,越看越晕,不看也行。
     * 总结就是
     * 想要指向变量a的指针 那就 int* p= &a;   而普通变量名a不是地址,要加取地址符&
     * 用法 *p == a;
     * 想要指向数组a[]的指针 那就 int* p= a; 因为数组的名字a就是地址
     * 用法 p[i] == a[i]; 相当于给数组a的名字换成了p
     **/


    /*变量指针的定义与使用
     * 下面两种写法是等价的
     * int a;
     * int* p = &a;
     * 和
     * int a;
     * int* p;
     * p = &a;
     * 等价,写法不同
     * */
    int a = 123;
    int *p1=&a;
    *p1 = 654; /*相当于修改了a的值为654*/
//    printf("a=%d\n",a);

    int b = 231;
    int *p2;
    p2 = &b;

    /*数组指针的定义与使用*/


    /* C语言让指针指向数组的两种方法
     * 第一种方法:将指针指向数组名
     * 第二种方法:将指针指向数组的第一个元素的地址
     * 这两种方法都可以的原因是数组的第一个元素的地址就是数组的地址
     *
     * */
    int a1[]={
   1,2,3};
    int *pa,*pb;//定义两个指针
    pa=a1;//指针pa直接指向数组名
    pb=&a1[0];//指针pb指向数组a的第一元素的地址
//    printf("pa=%p\n",pa);
//    printf("pb=%p",pb);

    /*C语言 数组的指针和指向数组的指针变量*/
    /* 对于数组a[]  来说 int* p = a; 和 int* p = &a 的区别
     * 说实话没区别,a 和 &a 数值上都是同一个地址,意义不同而已*/

    int arr[3]={
   31,24,74};

    /*指向数组的指针变量*/
    int* p3 = arr; /*arr存放的是数组首元素的地址*/

    /* 使用指针读取数组 p3[2]  和   *(p+2) 是等价的,写法不同而已,
     * 都是表示 数组arr[]的第3个元素  */
    printf("数组指针p3[2] = %d\n",p3[2]);
    printf("数组指针*(p3+2) = %d\n",*(p3+2));

    int* p4 = &arr; /*会报黄色警告*/
    printf("数组指针p4[2] = %d\n",p4[2]);

    /*数组的指针*/
    int (*p5)[3] = &arr;
    printf("数组指针*(*p5+2) = %d\n",*(*p5+2));


    /*
     * 注意&arr 和 arr虽然数值上相等,都是地址,但意义不同
     *  arr指的是这个数组的 第一个元素 的首地址。
     *  &arr 指的是这 整个数组 的首地址。
     * */

    return 0;
}

相关推荐

  1. C语言 数组指针

    2023-12-12 19:30:05       40 阅读
  2. C语言指针数组

    2023-12-12 19:30:05       14 阅读
  3. C语言指针数组 指针的运算

    2023-12-12 19:30:05       53 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 19:30:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 19:30:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 19:30:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 19:30:05       18 阅读

热门阅读

  1. SpringBoot中实现跨域的几种常用方式

    2023-12-12 19:30:05       31 阅读
  2. gitea仓库迁移

    2023-12-12 19:30:05       39 阅读
  3. 区块链:改变世界的技术

    2023-12-12 19:30:05       42 阅读
  4. Docker中安装并配置阿里巴巴的Sentinel控制台

    2023-12-12 19:30:05       40 阅读
  5. MySQL_6.MySQL常用创建语句

    2023-12-12 19:30:05       40 阅读
  6. 翻页新篇章:从Offset/Limit到游标分页的全面探索

    2023-12-12 19:30:05       37 阅读
  7. TypeScript 第四节:运算符

    2023-12-12 19:30:05       37 阅读
  8. 12、vue3(十二):用户管理页面搭建

    2023-12-12 19:30:05       37 阅读
  9. 定义一个存活态 HTTP 请求接口

    2023-12-12 19:30:05       37 阅读
  10. 12.11每日一题(备战蓝桥杯循环输出)

    2023-12-12 19:30:05       26 阅读