点击加载图片 前面已经带大家学习了初级的指针,先回顾一下重点:指针是用来存放地址的变量;指针的大小是4/8字节;指针类型决定了指针+-整数的步长和指针解引用的权限。这期继续探讨指针,相信你会有更加深入的理解。 目录 Part1:字符指针 Part2:指针数组 Part3:数组指针 1.定义 2.&数组名与数组名 3.使用 正文 Part1:字符指针 我们知道指针是有类型的,其中一种是字符指针类型char* ❓那么字符指针是如何指向字符的呢?接下来带大家探讨: 一般的使用: intmain{charch='e';char*pc=&ch;*pc='e';return0;} 这种就是指针pc指向字符e 还有一种使用方法: intmain{constchar*pstr='Helloworld';printf('%s\n',pstr);return0;} 运行结果: 点击加载图片 ❓提问:pstr是指向Helloworld整体吗? 实际上并不是的 而是把字符串Helloworld的首字母H的地址存放到pstr中了: 点击加载图片 下面有一道题,以加深理解: intmain{charstr1[]='Helloworld';charstr2[]='Helloworld';constchar*str3='Helloworld';constchar*str4='Helloworld';if(str1==str2)printf('str1andstr2aresame\n');elseprintf('str1andstr2arenotsame\n');if(str3==str4)printf('str3andstr4aresame\n');elseprintf('str3andstr4arenotsame\n');return0;} 输出结果: 点击加载图片 解释: str1和str2是分别开辟的两个数组,用相同的常量字符串去初始化两个数组,也是会开辟出不同的内存块。所以str1与str2不同。 C/C++会把常量字符串存储到单独的一个内存区域,str3和str4指向的就是同一个常量字符串,所以str3和str4相同。 Part2:指针数组 这一部分在指针初级提到了,这里回顾一下: 指针数组本质是什么? 答:数组。 以下的指针数组是什么意思? 1.int*arr1[3];2.char*arr2[2];3.char**arr3[1]; 答: int*arr1[3];---存放一级整型指针的数组 char*arr2[2];---存放一级字符指针的数组 char**arr3[1];---存放二级字符指针的数组 |
|