C++知识总结(3)
来源:互联网 发布:python 聚类算法 编辑:程序博客网 时间:2024/06/07 16:20
11、全局变量与静态变量的区别
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;
静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
12、局部变量能否和全局变量重名?
能,局部会屏蔽全局。要用全局变量,需要使用"::"
局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内
13、获取字符串的方法有哪些?它们的区别?
scanf 标准输入字符串 遇到’\0’停止不识别空格
gets 获取字符串 可以获取空格
fgets 从文件中获取
C++里:
(1)、cin>>
>>操作符的重载,有很多种原型,能够从输入流抽取各种形式的输入(int、单个字符、字符串等),也是我们最常用的一种读取字符的方式。它需要配合输入流对象使用(cin就是iostream类中的istream类对象静态成员),并且返回值是输入流的引用,所以能够有cin>>a>>b这样的写法。
(2) istream:: getline
用于从输入流读取指定长度的字符串到s所指向的字符变量中
14、使用指针有哪些好处?
指针的使用比较灵活
1.在数据传递时,如果数据块较大(比如说数据缓冲区或比较大的结构),这时就可以使用指针传递地址而不是实际数据,即提高传输速度,又节省大量内存。
2.数据转换,利用指针的灵活的类型转换,可以用来做数据类型转换,比较常用于通讯缓冲区的填充,比如说,一个数据缓冲区char buf[100],如果其中buf[0,1]为命令号,buf[2,3]为类型,buf[4~7]为某一数值,类型为int,就可以使用如下语句进行赋值:
*(short*)&buf[0]=cmdID;
*(short*)&buf[2]=type;
*(int*)&buf[4]=value;
3.字符串指针,是使用最方便,且常用的。
4.函数指针,形如:#define PMYFUN (void*)(int,int),可以用在大量分支处理的实例当中,如某通讯根据不同的命令号执行不同类型的命令,则可以建立一个函数指针数组,进行散转。
5.在数据结构中,链表、树、图等大量的应用都离不开指针。
15、数组与指针的区别
空间分配:数组是静态分配的,指针是动态分配
数组分配的空间是连续的,指针分配的空间不一定连续
访问效率:数组直接访问,访问效率高,指针间接访问,访问效率低
安全性:数组会造成数组越界,指针会造成内存泄漏
函数形参:数组作为函数参数会被退化为指针
操作:数组偏向于值的处理,指针偏向于地址的处理
声明后:*array合法,对指针取值不合法,将访问未知内存
array++不合法,数组名是指针常量,指针自加一个步长合法
- C语言知识总结(一)
- c语言知识总结(一)
- C语言知识总结(二)
- C语言知识总结(三)
- C一些知识总结
- C一些知识总结
- keil c 知识总结
- c语言 知识总结
- keil c 知识总结
- C Assignment2 知识总结
- C语言知识总结
- C高级知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- C语言知识总结
- c语言知识总结
- I Hate It (HDU
- oozie框架简介和搭建流程
- Redis中通用操作及数据持久化
- 【python】列表元素操作
- 低功耗蓝牙BLE之修改广播间隔等参数
- C++知识总结(3)
- JSP中注释<!-- -->和<%-- --%>的区别
- Mycat之——自定义数字范围分片
- Linux最大打开文件描述符数
- Java设计模式之模板方法模式(Template Method)
- 习题11-7 UVa 10801 Lift Hopping SPFA最短路
- 大数据时代的税收政策【智库2861】
- HDU-4300Clairewd’s message
- 软件测试的分类和分级