美文网首页
C语言指针二

C语言指针二

作者: AuglyXu | 来源:发表于2018-09-07 23:46 被阅读0次

指针和数组

  • 数组名称保存的就是数组首元素的地址
  • 既然数组名称保存的就是地址, 而指针也是用于保存地址的, 所以指针也可以指向数组
int ages[3] = {1, 3, 5};
int *p = &ages;
  • 结论: 如果利用指针保存数组的地址之后, 那么 p = ages = &ages;
// 要求你写出三种访问数组元素的写法
int ages[3] = {1, 3, 5};
printf("ages[0] = %i\n", ages[0]);//1
int *p = ages;
printf("p[0] = %i\n", p[0]);//1
printf("0[p] = %i\n", 0[p]);//1

指针的加减

  • 指针可以进行加减法
    • 应用场景: 一般都是用在指针数组中

    • 指针变量+1是加多少, 加的就是指针变量类型占用的字节数

    • 注意点:

      1. -1操作一般企业开发不会用到
    • 2.只有指针才可以做+1-1操作, 数组名不可以


指针和字符串

  • 字符串的本质就是数组, 所以指针也可以指向字符串,这样定义字符串又多了一种方式

定义:

    char str1[] = {'x', 'x', 'z', '\0'};
    char str2[] = "xxz";
    char *str4 = "xxz";
  • 利用数组和指针定义字符串的区别
  1. 存储的位置不同

    • 如果是通过数组定义的字符串, 那么存储在内存的栈中

    • 如果是通过指针定义的字符串, 那么存储在内存的常量区中

  2. 由于在内存中存储的位置不一样, 所以特性也不一样

    • 如果是通过数组定义的字符串, 我们是可以手动修改

    • 如果是通过指针定义的字符串, 我们不能手动修改

  3. 由于在内存中存储的位置不一样, 所以特性也不一样

    • 如果是通过数组定义的字符串, 每次定义都会重新开辟存储空间

    • 如果是通过指针定义的字符串, 重复定义不会重新开辟存储空间


字符串数组的第二种形式

  • 字符串数组的第二种格式
    char *str[] = {
        "lnj",
        "abc",
        "def"
    };

相关文章

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • C语言指针二

    指针和数组 数组名称保存的就是数组首元素的地址 既然数组名称保存的就是地址, 而指针也是用于保存地址的, 所以指针...

  • C语言指针(二)

    前面写啦一个C语言的指针,发现有同学理解上还有些问题,不过问题你们可以给我留言或者简信。也很感谢给我提出一些意见和...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • ndk02_指针运算,函数参数与指针,数组指针,二级指针

    一、指针运算 二、数组与指针 三、指针和函数参数 四、指针数组 五、 二级指针 六、知识要点 1、C语言中的函数如...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • [Swift]结构体指针操作

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

  • C语言 - 中

    总目录 前言 本文介绍C语言的指针:一、指针介绍二、指针使用三、数组指针和指针数组 函数指针和指针函数 环境 1...

网友评论

      本文标题:C语言指针二

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