美文网首页
指针常见操作(一)

指针常见操作(一)

作者: qianranow | 来源:发表于2018-04-24 11:37 被阅读45次

0. 指针和数组


  • 通过 指针 保存 数组变量地址
    int values[] = {1, 3, 5, 7, 9};
    int *valuesP = values;
    printf("%p\n", values);
    printf("%p\n", &values);
    printf("%p\n", &values[0]);
    printf("%p\n", valuesP);
    
  • 操作
    • 通过 下标 操作元素
      int values[] = {1, 3, 5, 7, 9};
      int *valuesP = values;
      printf("%i\n", valuesP[0]);
      valuesP[1] = 66;
      printf("%i\n", values[1]);
      
    • 通过 地址 操作元素
      int values[] = {1, 3, 5, 7, 9};
      int *valuesP = values;
      printf("%i\n", *valuesP);
      // 指针 + 1,其实是加上指针类型所占用的字节长度
      *(valuesP + 1) = 66;
      printf("%i\n", values[1]);
      // 下标[指针变量]
      printf("%i\n", 4[valuesP]);
      

1. 指针和字符串


  • 通过 指针 保存 字符串,本质就是保存字符串第 0 个元素的 地址
    char *str = "wxx";
    printf("%s\n", str);
    
  • 特性
    1. 通过数组保存字符串:字符串存储在 栈 中;字符串可以修改
       char str[] = "wxx";
       char strOne[] = "wxx";
       printf("str = %p, strOne = %p\n", str, strOne);
    
    2. 通过指针保存字符串:字符串存储在 常量区 中;字符串不可以修改
       char *name = "qtt";
       char *nameOne = "qtt";
       printf("name = %p, nameOne = %p\n", name, nameOne);
    

2. 指针数组


  • 定义:数组元素地址
    格式:指针类型 数组名称[元素个数]
    char *names[4] = {
        "wxx",
        "qtt",
        "xdy",
        "xfq"
    };
    for (int i = 0; i < 4; i++) {
      printf("names[%i] = %s\n", i , names[i]);
    }
    
    int name[] = {1, 2, 3, 4};
    int name1[] = {5, 6, 7, 8};
    int name2[] = {9, 10, 11, 12};
    int name3[] = {13, 14, 15, 16};
    int *names[4] = {
      name,
      name1,
      name2,
      name3
    };
    printf("%i\n", names[3][3]);
    

相关文章

  • 指针常见操作(一)

    0. 指针和数组 通过 指针 保存 数组变量地址int values[] = {1, 3, 5, 7, 9};in...

  • 指针常见操作(二)

    0. 指针类型 定义变量char *name = "wxx"; 作为形参类型void demo(int *p);i...

  • Flutter 用户交互事件

    前言 在 Flutter 中手势操作分为两类: 原始的指针事件(Pointer Event),即原生开发中常见的触...

  • Flutter 之 交互

    手势操作在 Flutter 中分为两类: 第一类是原始的指针事件(Pointer Event),即原生开发中常见的...

  • Go结构-2

    指针 普通指针 通过指针也可以间接操作指向的存储空间 指向数组的指针 可以通过指针间接操作数组 注意点:Go语言中...

  • 二、C语言基础

    A、指针 指针的概念:指针变量 和 指针 的区别 ?答:指针变量是指针的标记,也可以通过指针变量的标记操作指针内存...

  • [arm64]5、指针

    1、指针的基本操作 1.1、指针相加减 1、指针变量加减 2、指针的指针加减 1.2、指针的汇编 1.3、空指针异...

  • 数组和指针

    数组初始化 函数,数组,指针 使用指针形参 指针操作 通过指针改变数组内容

  • 双指针法(Swift代码篇)

    双指针法有三种: 左右指针法(头尾指针法) 快慢指针法 滑动窗口 左右指针法 左右指针法是最常见的双指针法,左右两...

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

网友评论

      本文标题:指针常见操作(一)

      本文链接:https://www.haomeiwen.com/subject/iovdlftx.html