首页 > 编程知识 正文

C语言标准库,C语言指针

时间:2023-05-04 02:35:37 阅读:162530 作者:1892

一、指针和引用的定义和性质区别

)1)指针)指针是变量。 但是,该变量中存储了指向存储器存储单元的地址。 即指针是实体。 引用和原变量实质上是一个东西,只是原变量的一个别名。 例如:

int a=1; int *p=a; int a=1; int b=a; 上面定义了整数变量和指针变量p。 指针变量p指向a的存储单元。 也就是说,p的值是a的存储单元的地址。

另一方面,下面的2个句子定义了1个整数变量a和对该整数a的参照b,事实上a和b是相同的,在存储器上占有相同的存储器单元。

)2)可以有常数指针,但没有常数引用

)3)指针可以具有多个级别,但是参考只能在一个级别(int **p; 是合法的,int a是不合法的)

)4)指针的值可以为空,但引用的值不能为空。 另外,引用必须在定义时初始化。

)5)指针的值在初始化后,也就是可以变更为指向其他存储单元,但是参照在初始化后,不进行变更就结束了。

) sizeof参照得到了指示的变量(对象)的大小,而sizeof指针得到了指针自身的大小。

(7)指针和引用的自我增加) )运算的含义不同

二、相同点

是地址的概念

指针指向存储器,其内容指向存储器的地址;

引用是某个内存的别名。

三、联系

1、引用在语言内部用指针实现(如何实现? 请参阅。

2、对于一般应用来说,应以引用为指南进行理解,不犯重大语义错误。 引用是操作受限的指针。

引用的几个规则如下。

)必须在创建引用的同时初始化)指针可以随时初始化)。

)2)不得有空值引用,且引用必须与合法存储单元相关联) )指针可以为空值。

)3)引用初始化后,不能改变引用的关系(指针可以随时改变指向的对象)。

上面的程序看起来像在玩文字游戏,没有显示出引用的价值。 的主要功能是传递函数的参数和返回值。 在c语言中,函数参数和返回值的传递方式有三种:传递值、传递指针和传递引用。

“传递引用”的性质类似于“传递指针”,写法类似于“传递值”。 实际上,任何能用“引用”做的事情都可以用“指针”做,为什么还要“引用”它呢?

答案是“使用合适的工具做合适的工作”。

尽管指针功能强大,但指针可以不受限制地操作内存中的哪些内容是非常危险的。

像小刀一样,可以砍树、剪纸、修指甲、理发。 谁敢这样使用?

如果确实只需要借用某个对象的“别名”,请使用“浏览”而不是“指针”以避免发生事故。 比如,有人需要证明,本来在文件上盖印章就可以了,但是把取印章的钥匙给他,他就获得了不该有的权利。

总的来说,在以下情况下你应该使用指针:

一个是考虑到可能不指向任何对象,可以将指针设置为空。

第二,它必须能够在不同的时间指向不同的对象(在这种情况下,您可以改变指针的方向)。 如果始终指向对象,并且指向对象后该点保持不变,则必须使用引用。

还有一种情况,就是活力的自行车重载某个操作符时,你应该使用引用。

尽可能使用引用,不得已时使用指针。

当有活力的自行车不需要“重新定向”时,引用一般优先于指南。 这意味着引用通常用于类的公共接口时很有用。 引用出现的典型场景是对象的表面,指针用于对象内部。

33558 www.cn blogs.com/nqdjqm/archive/2012/12/04/2801519.html

33558 www.cn blogs.com/dolphin 0520/archive/2011/04/03/2004869.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。