设为首页 加入收藏

TOP

C语言指针的相关概念
2014-11-23 20:11:06 来源: 作者: 【 】 浏览:21
Tags:语言 指针 相关 概念

1、基础概念


C语言里,基本变量存放的是数据,而指针变量是存放地址的变量(另一变量额地址)。在 c 语言中,指针也称之为地址,所以我们常说某某变量的指针,可以理解为某某变量的在内存中的地址。如:b 变量的指针是 1000,可以理解为 b 在内存中的地址是 1000,注意不能理解为 b 的指针变量是4004(错误的理解)。


2、定义指针变量


在 c 语言指针的定义形式如下:


如:


在 c 里,可以在变量前加 & 符号取得变量的地址,同样地,可以在指针变量前加 * 符号取得指针变量指向的变量的值(该内存地址上存放的数据),如:


3、指针变量作为函数参数


注:在被调用函数中,试图修改指针变量的值(即地址)来达到改变实参的目的都是错误的.


这句话如何理解呢 这里牵涉到一个比较容易混淆的问题-值传递和引用传递的区别.在这里提供一种理解方式,如下:将实参传给形参的时候,形参都是将实参的内容复制一遍,再调用相对应的函数.



另外,我们还需要理解一下,下面这几个的定义方式的不同:



C语言梳理一下,分布在以下10个章节中:


2) 通过指针引用数组元素


类似地推算,我们可以知道:a[i] 等同于 *(a+i),当中 a[0] 等同于 *a 或 *(a+0);*(p+i) 等同于 ptr[i]。看过一些书,会有着这样一种介绍 * 和 [] 等同,,结合前面的例子,我们再看另外一个例子:


是不是觉得我们基本可以了解这些使用了,我们再深入地学习一下,当 * 与 ++ 或 —— 相遇时,又会是一种什么样的情况:


* 与 ++ 或 -- 的运算符优先级相同,结合性是由右往左。如果觉得基本都懂的,那猜猜一下下面这个例子会输出什么?


现在的我们可以来总结一下:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇深度剖析Linux系统2.6内核改进的.. 下一篇Linux内核Radix Tree

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: