C/C++一些特殊关键字的作用&指针和引用的区别
来源:互联网 发布:菲律宾程序员招聘骗局 编辑:程序博客网 时间:2024/05/16 08:59
一、指针和引用的区别是什么?
- 指针是一个变量,它指向一块内存空间;引用是一个变量的别称,只是名字不同而已
- 指针可以为空,引用不能为空,且定义的时候必须初始化
- 指针初始化后可以改变,但是引用不能改变
- const可以修饰指针,但是不能修饰引用
- 指针可以有多级,引用只能有一级
- sizeof引用,求的是变量的大小,而sizeof指针只是求指针的大小
- 指针和引用++的运算意义不一样
- 指针和引用在作为参数传递时意义不同,指针作为参数时,实际上也是值传递,只不过传递的是地址,是指针的一份拷贝而已;而传引用时,就是传递变量本身,函数内对引用的操作就是对 原来变量本身的操作
二、浅谈const关键字的作用
注意:C语言中C++中const的作用是不同的,在C语言中const修饰的变量仍然是一个变量,而在C++中修饰的变量变成了常量
例如在C++中这样的情况是允许的:int n=5; int arr[n];
- 在C语言中const修饰的变量,表示这个变量是可读的,不能显示地通过a来修改a的值
- const 在‘*’左边表示 常量指针,如 const int* a,或者int const *a; 表示指针指向的变量的值不能被修改
- const 在‘*’右边表示 指针常量,如 int *const a; 表示指针指向的地址不能改变;地址空间内的值可以改变
三、static关键字的作用
在C语言中它有如下几个作用:
- 修饰局部变量。 一般来说局部变量都存放在栈上,出了作用域生命周期就结束了,而用static修饰后,它的生命周期会延长到随着文件的结束才结束
- 修饰全局变量。 使得该全局变量只能被源文件访问到,其他工程文件即使使用extern也访问不到
- 修饰函数。 作用和修饰全局变量相同,都是修改可见性,只能在该源文件内被访问
在C++中的作用
- 修饰类的成员函数。表示该函数是该类所有,而不属于任何该类的特定对象。
- 修饰成员函数中的变量。表示该变量是所有该类的对象公有的,该变量在内存中只有一份拷贝,可以通过类和对象去调用。
- 对于静态成员函数,只能访问静态变量和静态成员函数,不能访问成员函数和变量
四、extern关键字的作用
在C语言中,extern修饰在变量和函数之前表示该变量和函数是在别的文件中定义的,要在这里引用。如果是在main函数中声明的就只能在main函数中调用,在其它函数不能调用。
其实调用其他文件的变量和函数要只需要#include+文件名即可,用extern的好处是为了减少编译时间。
如果C++文件中调用了C的库函数,则要用extern声明,因为C++和C的命名规则不同,这里用来解决名字匹配问题。
五、explict关键字的作用
C++中的explicit只能用于修饰只有一个参数的类构造函数,它的作用是表示该构造函数是显示地不是隐式的
六、volatile关键字的作用
volatile关键字影响编译器编译的结果,用volatile修饰的变量表示该变量的存储随时有可能改变,该变量参与的运算不要进行编译优化。
阅读全文
0 0
- C/C++一些特殊关键字的作用&指针和引用的区别
- 【C/C++】引用和指针的区别
- 指针和引用的区别(C++)
- C程序设计语言--指针和引用的区别
- 引用和指针的区别C/C++
- [C++]指针和引用的区别
- C++:指针和引用的区别
- 【C++】指针&引用的区别
- 【C/C++】概念:指针和引用的区别
- 【C/C++】指针与引用的区别
- C语言中一些关键字的作用
- C语言中一些关键字的作用
- C语言中一些关键字的作用
- C语言中一些关键字的作用
- c的指针*和引用&
- [C++] 引用和指向指针的引用
- c++引用类型和指针类型的区别
- 【C/C++学习】之一、指针和引用的区别
- servlet
- mysql学习2—外键约束的参照操作
- [Js] Js实现继承的5种方式
- forward
- I am here!
- C/C++一些特殊关键字的作用&指针和引用的区别
- Excel 技巧百例:数据透视表的简单使用-行列转换
- (十三)QQ 消息气泡
- linux shell 之 管道符号(|)
- Ubuntu16.04安装tensorflow遇到的问题
- Spring Web MVC 关键技术点
- Vim
- 一个爬虫的自我修养之使用urllib进行网页抓取
- 系统调用