指针

作者: silasjs | 来源:发表于2019-01-28 17:26 被阅读7次

[toc]

指针

  • 指针为什么要分类型?
    • 因为当我们利用指针去取值的时候,系统就会自动根据指针的类型来确定应该取多少个字节中的值。

指针和数组:用指针访问数组

  • 只要一个指针指向了数组,那么访问数组就有3种方式:
    • ages[0];
    • p[0];
    • *(p + 0);
      • 指针+1,是加上指针类型所占用的长度;
int ages[3] = {1, 3, 5};
int *p = ages;
for (int i = 0; i < 3; i++) {
    printf("ages[%i] = %i\n", i, *(p + i));
}
//还有一种写法
for (int i = 0; i < 3; i++) {
    printf("ages[%i] = %i\n", i, i[p]);
}

指针和字符串

  1. 通过数组存储字符串
char str[] = "slj";
str[0] = 'w';
  1. 因为数组名就是数组的地址,数组名保存的就是数组的第0个元素的地址,所以我们可以使用指针来保存字符串。通过指针保存一个字符串,其实就是保存的字符串第0个元素的地址。
char *str1 = "wxk";
  • 通过数组保存字符串和通过指针保存字符串的区别
    • 通过数组来保存字符串,
      • 那么字符串是一个变量:str可以修改
      • 字符串存储在内存的栈中
      • 存在栈中的变量的特点:当作用域结束后系统会自动释放该变量
      • 可以使用scanf函数接收字符串
    • 通过指针来保存字符串,
      • 那么字符串是一个常量:str1不能修改
      • 字符串存储在常量区
      • 存储在常量区的值的特点:不会被释放,而且多个相同的值对应同一个地址
      • 不能使用scanf接收字符串

利用指针保存字符串的应用场景

for (int i = 0; i < 100; i++) {
    //这里如果使用数组保存,意味着需要开辟100次,释放100次
    //char str2[] = "ksg"; 
    chat str2 = "ksg";
}

相关文章

  • 混淆知识点

    1、指针数组&数组指针、常量指针&指针常量、函数指针&指针函数 数组指针&指针数组 数组指针的定义 int (*p...

  • C语言

    C 指针、指针变量、函数指针、指针函数、指针数组、数组指针、C 数组

  • 指针

    普通指针指针的指针 数组指针 函数指针

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • C:函数指针的坑

    关于该死的函数指针和指针函数 先来个目录 常量指针、指针常量 数组指针、指针数组 函数指针、指针函数 1、先看第一...

  • C 语言指针

    指针类型:指针的读取长度,指针的读取方向(大小端) 空指针,无类型指针,野指针 常量指针,指向常量的指针 http...

  • 二、C语言基础

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

  • 王道程序员求职宝典(十一)指针与引用,树

    指针与引用 指针声明typedef别名类型检查void*指针指向指针的指针函数指针typedef简化函数指针定义初...

  • NDK02

    指针 指针概念 1 .指针变量和指针的区别?答: 指针变量是定义指针的标记,指针就是指向的内存地址。2 .函数指针...

  • 12 C指针

    1、指针定义 2、指针进阶 3、指针使用 4、多级指针 4、指针和数组 5、指针和字符串 6、高级指针之和指向函数的指针

网友评论

      本文标题:指针

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