c中的指针的理解
来源:互联网 发布:李小璐分享淘宝店链接 编辑:程序博客网 时间:2024/05/16 18:52
很早就听说过 c的指针很难很难 所以抽空了解下。其实只要掌握了 概念,弄清楚他到底是干什么的?也不算太难。
既然指针是变量 那么他必然符合变量的几个特点 有名字 需要知道他叫什么 定义它来做什么用。 还有需要赋值把 没有值小心出错
嘎嘎 。再有 应该有类型吧 走什么风格的。开个玩笑 只要这个好理解 。
1:指针的名字与一般变量的规定相同,没有什么特殊的地方。
2: 指针的值就是某个变量的地址值。因此我们说指针用来存放变量地址值的变量。指针的值与一般变量的值是不同的,这是指针一个
特点。这就是说,指针式用来存放某个变量的地址值,当然被存放地址值的那个变量已经定义过的,并且被分配了确定的内存地址值。 一个指针存放了哪个变量的地址值,就说该指针指向那个变量。
3:指针的类型。指针的类型是该指针所指向的变量的类型。而不是指针本身的类型。因为指针本身是内存的地址值。其类型自然是int
型或者long型。而指针的类型是由它所指向的变量的类型决定的。由于指针可以指向任意类型的变量所以指针的类型也是很多的。int char float 数组 结构类型,联合类型 还可以指向函数或者文件等等
举个例子吧:
int a=5,*p;
这里说明了变量a是int类型的 并且付了初始值 。在定义语句中,*p表示p是一个指针,星号(*)是说明符,他说明后面的变量 是指针变量 并且指出他的类型是int指针,意味着P所指向的变量是一个int型变量。
假定要将p指向变量a 由于指针是用来存放变量的地址值的,因此,要将变量a的地址赋值给指针P ,变量a的地址表示为&a 表示取其后面变量的地址
p=&a
则p是指向了变量a的指针。假定a配分配了内存地址是00001 p和a的关系如下图所示。
图中标明变量a的内存地址 是300H 。变量p的内存地址是305H。变量a的值为5,而指针的值为300H 可见变量p指向了a。翻译过来就是 指针p中存放了变量a的地址值。
c的指针定义一般如下:
1:一般变量指针定义的格式是 变量名前加&符号
2 数组的地址值可用数组名表示,数组名表示该数组的首元素的地址值。数值中的某个元素的地址值用&运算符加上数组元素名。
int a[10] ,*p1,*p2;
p1=a;
p2=&a[5];
这里*p1 和 *p2是指向int型变量的指针 p1=a 表示p1指向了a数组的首元素;p2=&[5]表示指针p2指向数组a的数组元素a【5】。
3函数的地址值使用该函数的名来表示,指向函数的指针可用它所指向的函数名来赋值。
关于&的用法需要注意的是它可以作用在一般变量名称前,数组元素名前,结构变量名前和结构成员名前 而不能作用在数组明前,也不能作用在表达式跟常量前。
那我们用简短的语句总结下:
对指针的理解:指针就是变量 比一般变量能特殊点。特殊在他是用来存放某个变量的地址的,它所存放那个变量的地址 就成为他指向了那个变量 也可以成为他是哪个变量的引用。指针的类型不是他本身的类型,而取决于 他指向变量的类型。简单说
指针的值是地址
指针的类型是它所指向变量的类型
- c中的指针的理解
- C/C++中的对指针的理解
- C语言中的指针数组与数组指针的理解
- C语言中的指针理解
- C 指针的理解
- C 指针的理解
- C 指针的理解
- C 指针的理解
- C 指针的理解
- C 指针的理解
- C指针的理解
- c语言中的指针的基本需要理解的概念
- 深入理解C语言中的指向函数的指针!
- 深入理解C语言中的指向函数的指针和返回指针的函数!
- 理解C语言中的指针(一)
- C语言中的指针-记录个人理解
- C语言中的指针初步理解
- 深入理解C中的数组指针
- C中的增量++和减量--运算符
- 我在赶集网的两个月(职场新人也可以制造传奇)
- 面向对象的static
- iPhone开发【十三】动画效果之最简单的动画——动态加载图片
- Words study
- c中的指针的理解
- linux加载iso文件
- 僅存的夢被擊碎
- UML中的用例图
- JQuery入门——用unbind方法移除绑定事件
- cocos2d-x import org.cocos2dx.lib cannot be resolve
- TObject简要说明-对象的创建流程
- eclipse中配置tomcat 启动正常 访问报404
- android 画图之setXfermode