c语言指针
来源:互联网 发布:networking 上传数据 编辑:程序博客网 时间:2024/05/17 02:53
在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。[1] 在高级语言中,指针有效地取代了在低级语言,如汇编语言与机器码,直接使用通用暂存器的地方,但它可能只适用于合法地址之中。指针参考了存储器中某个地址,通过被称为反参考指针的动作,可以取出在那个地址中存储的值。作个比喻,假设将电脑存储器当成一本书,一张内容记录了某个页码加上行号的便利贴,可以被当成是一个指向特定页面的指针;根据便利粘贴面的页码与行号,翻到那个页面,把那个页面的那一行文字读出来,就相当于是对这个指针进行反参考的动作。
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的 类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。
指针的类型:(1)int*ptr;//指针的类型是int* (2)char*ptr;//指针的类型是char* (3)int**ptr;//指针的类型是int** (4)int(*ptr)[3];//指针的类型是int(*)[3] (5)int*(*ptr)[4];//指针的类型是int*(*)[4]。
指针所指向的类型:(1)int*ptr; //指针所指向的类型是int (2)char*ptr; //指针所指向的的类型是char (3)int**ptr; //指针所指向的的类型是int* (4)int(*ptr)[3]; //指针所指向的的类型是int()[3] (5)int*(*ptr)[4]; //指针所指向的的类型是int*()[4]。
指针的值--或者叫指针所指向的内存区或地址: 指针的值是指针本身存储的数值,这个值将被编译器当作一个地址,而不是一个一般的数值。在32位程序里,所有类型的指针的值都是一个32位整数,因为32位程序里内存地址全都是32位长。 指针所指向的内存区就是从指针的值所代表的那个内存地址开始,长度为sizeof(指针所指向的类型)的一片内存区。以后,我们说一个指针的值是XX,就相当于说该指针指向了以XX为首地址的一片内存区域;我们说一个指针指向了某块内存区域,就相当于说该指针的值是这块内存区域的首地址。 指针所指向的内存区和指针所指向的类型是两个完全不同的概念。在例一中,指针所指向的类型已经有了,但由于指针还未初始化,所以它所指向的内存区是不存在的,或者说是无意义的。
- C语言中的指针
- C语言指针问题
- C语言野指针
- C语言之指针
- C语言指针简介
- C语言的指针
- c语言指针点滴
- C语言的指针
- c语言指针简介
- c语言 数组 指针
- c语言指针详解
- 理解C语言指针
- c语言函数指针
- C语言指针
- C语言之指针
- c语言指针详解
- c语言中的指针
- C语言--指针,数组
- CCF 201609-1 最大波动
- gitbook安装使用教程及和github同步方法
- 83. Remove Duplicates from Sorted List (移除链表中值相等的节点)
- Fragment向另一个Activity传值
- 第81篇 webrtc一对一研究(十)及php及jQuery
- c语言指针
- Java NIO DatagramChannel
- 程序题
- 在Android Studio中进行单元测试和UI测试
- #扫疑贴#ip地址、子网掩码、网关等概念
- Debian比较快的源
- jquery ajax error函数和及其参数详细说明
- 按钮和文字反色
- 数据泵的理解细节使用