指针学习总结(数组指针,指针数组)
来源:互联网 发布:window python开发工具 编辑:程序博客网 时间:2024/06/05 19:22
指针是C语言的精髓,它可以直接操作内存地址,学会灵活运用指针将会非常方便。很多人碰到指针会犯迷糊,搞不懂指针到底是什么。
数据在内存中是怎样存储读取呢?比如定义一个变量,程序在编译时系统会给这个变量分配 内存单元。然后根据类型给它分配相应的字节,内存区每块字节都有相应的编号,这种编号就是内存地址。指针就是用来存放内存地址的。要想存放内存地址我们要先得到地址,这时就用到 “&”这个符号
<pre name="code" class="cpp">#include <stdio.h>void main(){ char a,b; char *p; p=&a; b=*p; printf("%p",p); printf("%c",b);}
这时打印出来的p,b是多少呢?这里的&可不是按位与,这里是取地址符。“ * ”是间接取地址。*p 就是将p的地址还原回去,找到这个地址所指向的内容。指针变量在32 位系统下,永远占4 个byte,其值为某一个内存的地址。指针可以指向任何地方,但是不是任何地方你都能通过这个指针变量访问到。
指针数组
首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。
数组指针
首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。
char *p1[10];char (*p2)[10];
这两个分别是什么意思呢?
“[ ]”的优先级比“ * ”要高,所以 p1[10] 是一个整体,也就是一个数组。char *修饰的就是数组的内容。通常也可以这样写比较好理解:char* p1[10]; 。它就是10个指向int类型数据的指针,即指针数组。
什么时候用到这个呢?怎么用呢?
char a,b,c,d;char *p,*q,*v,*w;p=&a;q=&b;v=&c;w=&d;如果程序中多次用到指针,这样定义是不是需要定义很多指针。我们直接用指针数组。
char a,b,c,d;char *p[4];p[0]=a;p[1]=b;p[2]=c;p[3]=d;这样调用的时候也方便。
下面来说
char (*p2)[10];在这里先算*p2,构成一个变量名为p2的指针,它指向一个为char型元素为10的数组。
0 0
- 指针学习总结(数组指针,指针数组)
- 指针类型学习总结(函数指针、数组指针和指针数组)
- 数组指针(也称行指针) &指针数组
- 数组指针、指针数组、指向指针的指针使用总结
- 指针数组、数组指针、函数指针、指针函数总结
- 指针学习(二)指针与数组
- 学习:“指针数组”、“ 数组指针 ”、“函数指针”、“ 函数指针数组”、“指向函数指针数组的指针”
- 指针,指针数组,数组指针
- 指针数组、数组指针
- 指针数组/数组指针
- 指针数组/数组指针
- 数组指针 指针数组
- 指针数组,数组指针
- 数组,指针,数组指针
- 数组,指针,数组指针
- 指针数组&数组指针
- 指针数组&数组指针
- 数组指针 指针数组
- python-ConfigParser模块【读写配置文件】
- 第二周项目一旱冰场造价
- 设计模式-------代理模式(ProxyPattern)
- 第二周项目三时间类(2)
- 第二周【项目2-长方柱类】
- 指针学习总结(数组指针,指针数组)
- 命令行的基本操作(一)
- php开发之变量(二)
- 通过Http协议实现文件上传
- 影响世界的儿童冒险动画:《丁丁历险记》 The Adventure of Tintin
- Office 2016与Skype for Business预览版亮相
- 第一周上机实践_长方柱
- 第二周项目2-长方柱
- .net学习第十四天