浅谈指针
2011-04-16 22:25
120 查看
浅谈c与c++中的指针艺术(一)
有句话说得好,学会c语言走遍全天下,作为一个痴迷操作系统的os谜,最近很对指针感兴趣,所以想记录下关于学习指针理解的点点滴滴。
在c语言中的指针,其实完全用另一个名字来理解,就是地址。在声明一个指针时候我们可以这样声明int i=5;int *p=&i;我们的编译器是如何给变量i在栈中分配一个空的内存空间假设我们的这个内存单元名称叫做i,地址是0x12ff7c 而这个内存单元(4个字节)中存储的数据为5
编译器还会在栈中找到一块空的内存单元 命名为p ,而这块内存单元的地址假设为0x12ff78这就是我们的指针p,这块内存单元中存放的就是i这块内存单元的地址也就是0x12ff7c
我们要分清&p,p,&i,*p这几个概念&当然就是取地址 *便是和&相反的操作我们在编程时候会写printf("%d",p); 编译器会识别p的地址,因为编译器存储了p这个内存单元的地址0x12ff78,我们会从0x12ff78开始寻址,因为输出int类型,所以会从0x12ff78寻址四个字节,取出其中的内容。也就是返回0x12ff7c
有句话说得好,学会c语言走遍全天下,作为一个痴迷操作系统的os谜,最近很对指针感兴趣,所以想记录下关于学习指针理解的点点滴滴。
在c语言中的指针,其实完全用另一个名字来理解,就是地址。在声明一个指针时候我们可以这样声明int i=5;int *p=&i;我们的编译器是如何给变量i在栈中分配一个空的内存空间假设我们的这个内存单元名称叫做i,地址是0x12ff7c 而这个内存单元(4个字节)中存储的数据为5
编译器还会在栈中找到一块空的内存单元 命名为p ,而这块内存单元的地址假设为0x12ff78这就是我们的指针p,这块内存单元中存放的就是i这块内存单元的地址也就是0x12ff7c
我们要分清&p,p,&i,*p这几个概念&当然就是取地址 *便是和&相反的操作我们在编程时候会写printf("%d",p); 编译器会识别p的地址,因为编译器存储了p这个内存单元的地址0x12ff78,我们会从0x12ff78开始寻址,因为输出int类型,所以会从0x12ff78寻址四个字节,取出其中的内容。也就是返回0x12ff7c
相关文章推荐
- 浅谈C++指针直接调用类成员函数
- 浅谈C++中的指针
- 浅谈数组与指针表示字符串的区别
- 浅谈Object Pascal的指针
- 浅谈C++虚表指针及虚函数表
- 浅谈指针使用中注意事项
- 浅谈C/C++中的指针和数组(二)
- 结合sizeof浅谈C++中的指针和字节对齐
- 浅谈C++中指针和引用的区别
- 浅谈指针—find_char(实现strpbrk函数)
- 浅谈C++中指针和引用的区别
- 浅谈C中的指针和数组(四)
- 浅谈运用指针引用字符串
- 浅谈智能指针auto_ptr/shared_ptr/unique_ptr
- 浅谈指针的偏移
- [转]浅谈Object Pascal的指针
- 浅谈指针
- 浅谈c语言typedef 与结构体指针(个人小经验)
- 浅谈数组与指针
- 浅谈 指针-你真的了解指针吗?