C-7.指针

原创 2015年11月23日 19:54:02

一. 指针

1. 指针变量的定义和使用

数据访问一般分为直接访问和间接访问,指针是间接访问的常用形式

定义: 指针变量是存放内存地址的变量


注意: 指针变量所占字节数至于操作系统有关



2. 取址与取值

&: 取址运算符,获得的是一块地址

* : 取值运算符,获得的是地址存储的值



3. 指针的算术运算

指针只有加减运算


4. 指针变量

指针类型的变量,指针变量赋值意味着重指向



*p注意事项: 指针变量定义时,只起修饰作用,告诉编译器p是指针;指针变量取值时,访问内存地址为p的存储区域

二. 指针与数组

1. 指针可以当做数组名使用





2. 指针与数组的区别

所占空间不同: 指针只与操作系统位数有关,数组与元素类型和个数有关

数组名是常量地址,不能重指向(不能赋值);指针可以重指向



注意: 指针类型要与数组元素类型匹配



3. 指针数组



三. 指针与字符串

字符指针可以操作单个字符,也可以操作字符串



四. 指针与结构体

1. 结构体指针 

指向结构体变量的指针,称为结构体指针

结构体指针的定义:


结构体指针访问成员:




2. 结构体指针应用示例




3. 指针与结构体数组

结构体数组的数组名是一个结构体指针常量




注: 结构体指针为函数参数时,函数操作结构体数组时,需要传入首地址和元素个数

4. 预编译指令

宏定义


预编译指令的三种形式



五. 指针与函数

1. 函数指针定声明 定义 调用

函数名和数组名一样是地址




应用实例: 





2. 函数回调

函数指针作为参数




3. 动态排序

示例:





4. 函数返回值是函数指针

示例:






c++中指针问题一个很好的例子

偶尔在问题区看到这个问题,感觉有助于对指针问题理解,所以记录一下,希望给看到的你一些帮助。...
  • guwuchangtian
  • guwuchangtian
  • 2017年06月03日 11:52
  • 683

C++ 重载操作符之一(指针运算符*,->)

//重载指针运算符*,-> #include using namespace std; template class MyPtr { private: T * m_ptr; public: ...
  • u014338577
  • u014338577
  • 2015年09月06日 23:24
  • 2359

长指针

1. 16位Windows的产物  现在这已经是一个废弃的概念了——基本上。        早期16位计算机将内存中某段开始[?内存模式],寻址范围为2^16地址范围之内的指针叫做短指针,寻址范围...
  • fenxian2011
  • fenxian2011
  • 2014年02月13日 18:42
  • 477

shared_ptr 共享指针 智能指针 简介

原文地址: http://euyuil.com/2344/ http://www.cnblogs.com/welkinwalker/archive/2011/10/20/2218804.htm...
  • u011866460
  • u011866460
  • 2014年12月19日 13:54
  • 1481

远指针,近指针,巨指针

预备知识: 这与CPU寻址有关。在16位机器下,地址线为20位。但CPU处理能力只有16位。于是访问内存的方案是分段。即基址(段)+偏址是逻辑地址,从中可计算物理地址。基址(段)有16位,偏址也1...
  • dazhi_100
  • dazhi_100
  • 2012年06月28日 14:45
  • 1277

vector中指针问题

根据搜索内容总结如下: vector ::iterator iter=spvec.begin();// string* 代表什么意思? while(iter!=spvec.end()) { ...
  • u011089523
  • u011089523
  • 2016年08月27日 21:37
  • 930

行指针和列指针-专题分析(转至汪老师的C语言)

指针与多维数组(主要指二维数组)int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23}; 换个角度看世界:如首行一样,将首行视为一个元素,一个特殊的元素,这个“特殊的...
  • haussuden
  • haussuden
  • 2010年10月25日 22:33
  • 11914

深度长文教你彻底掌握C++/C指针

一.基础C++或者C里面最容易让人糊涂应该是指针了,不管是初学者甚至是有经验的童鞋有时候在用指针的时候也会出现一些很隐蔽的错误. 指针本身就是一个很绕的概念,而指针又能够和很多的结构比如数组(二维数...
  • xierhacker
  • xierhacker
  • 2016年09月13日 19:49
  • 8518

c/c++中指针的理解(初学者)

关于指针,大家肯定不陌生,一些初学者,想必会出现思绪混乱的情况,现在我就来帮大家缕一缕吧。(第一次写微博 有点小紧张) 大家应该了解一些计算机对内存的管理方式吧。操作系统会将内存单元进行编号,这些...
  • Allen_ww
  • Allen_ww
  • 2016年01月11日 19:41
  • 9620

C语言中一维指针与二维指针的转化

首先说个最特殊的指针 void×,这个是当初为了指针转化的方便,设立的一个万能指针。任何指针都能与之转化。 看两个定义:typedef int ×t; t a[10]; typedef int t...
  • psh2009
  • psh2009
  • 2012年10月19日 16:14
  • 2369
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C-7.指针
举报原因:
原因补充:

(最多只允许输入30个字)