游戏开发之测试篇(C++)

1.计算下列结构体的内存大小

union C { char a[5]; int b[5]; double c[5]; };
struct D { char a[5]; int b[5]; double c[5]; };

答: 40个字节;8+24+40 = 72个字节(double 不管是32位还是64位操作系统都是占8个字节!)。

2.C和C++ const的区别

答:
C语言中const限制变量具有不变性的时候,是一个伪常量
C++中const限定变量具有不变性的时候是一个真常量。例如const int a = 10;
C++中const在编译期间进行了类似于宏替换的操作。
C++使用&取地址符对const常量取地址时,C++编译器会分配临时的内存空间。

3.C和C++内存申请和释放有什么不同?

答:参考链接【点击跳转】

4.描述引用的作用和引用可以怎么使用(举例)?

答:
引用可以保证编程安全,避免了对指针知识的不熟悉所带来的不便。
①用一个引用初始化另一个引用。int a=4; int &a1 = a;int &a2 = a1;
②函数的形参使用引用。void Func(int &a,int &b){}
③函数的返回值使用引用。int& Func(){}
④指针引用。int a = 5;int *p = &a;int *&p1= p;
⑤数组引用。int a[5] = {0};int &a1[5] = a;
⑥使用引用赋左值。int value[10] = {0};int &Func(int index){return value[index];};int main(){Func(0) = 20;return 0;}

5.C和C++结构体的区别?

答:
①C语言没有继承,C++有继承。
②C语言没有成员函数,C++有成员函数。
③C没有权限管理,C++有权限管理且默认为public公有权限。
④C语言结构体实体使用时需要加上struct,C++结构体实体不需要加上struct。

6.const和#define有什么优缺点?

答:
①在C++中一般使用const代替宏,因为const方便调试,宏不方便调试。
②const在源代码期间会有错误检查,宏只有在编译期才会出现错误提示。
③宏没有类型安全检查。

7.引用和指针有什么区别(最少2条)?

答:
①引用本质是一个指针常量。
②引用不需要开辟额外的内存空间,指针需要额外开辟四字节的内存空间。
③引用是一个变量或对象的别名,指针只是记录变量或对象的地址。
④引用必须初始化,指针不必。
⑤不存在指向空值的引用,但存在指向空值的指针。

8.命名空间的作用和有哪些写法?

答:
a、命名空间是为了避免变量名冲突的解决方案。
b、命名空间是可以叠加的、可以嵌套。
c、命名空间是可以扩展的,不是一定义下来便无法更改。
d、命名空间中的函数定义和声明是可以分离的。
e、匿名命名空间:作用和static类似,只能在文本中生效。

写法:
①namespace 命名空间名称{}
②namespace {}

9.const的用法最少4种

答:
①常量,只读。const int a = 10;
②常量指针,指向可以修改,指向地址的值无法修改。const int* a/int const * a;
③指针常量,指向无法修改,指向地址的值可以修改。int *const a;
④指向常量的指针常量,指向无法修改,指向地址的值无法修改。const int *const a;
⑤常引用,只读。const int& a;
⑥class A{void func()const{}};

10.初始化列表的作用?

答:初始化父类(继承);初始化成员变量;初始化类内常量。

11.不使用第三方变量交换2个变量的值,最少2种方式。

答:
1.int a,b; a=b-a; b=b-a; a=b+a;(算术运算)
2.int a,b; a=a^b;b=a^b; a=a^b;(位运算)(按位异或).
按位异或:相同为0,不相同为1!

12.C++函数传递参数的方式(3种)

答:值传递、址传递、引用传递。

13.C++的类型转换有哪些(最少2种)

答:静态转换(static_cast)、强制类型转换(reinterpret_cast)、const_cast、dynam_cast。

14.C++函数增强了什么,相比于C语言?

答:
①函数可以重载;
②函数可以使用给形参赋初始值;
③函数形参可以设置占位符;

15.匿名函数的格式和作用?

答:
[捕获/拷贝的值](【形参列表】)【->返回值】{函数体};。
作用:
①使用匿名函数可以代替回调函数、宏。
②方便快速调用外部参数,再调用时不需要额外传递参数,可以再捕获/拷贝列表中直接获取值。

16.写一个函数:替换字符串中所有 # 字符为 ### 。

注意:替换后的字符不能再次替换。

void Func(char &str[1024])
{char temp[1024] = {0};int strLen = strlen(str), index = 0;for(int i = 0;i < strLen;i++){if(str[i] != '#')temp[index++] = str[i];else{temp[index++] = '#';temp[index++] = '#';temp[index++] = '#';}}strcpy(str,temp);
}

游戏开发之测试篇(C++)相关推荐

  1. 游戏开发心得——书籍篇——《游戏引擎框架》-导论

    游戏开发心得--书籍篇--<游戏引擎框架>-导论 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架> ...

  2. 游戏开发心得——书籍篇——《游戏引擎框架》-专业工具

    游戏开发心得--书籍篇--<游戏引擎框架>-专业工具 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: 学习<游戏引擎框架&g ...

  3. 游戏开发面试答案篇(一)-- C++篇​

    游戏开发程序岗面试题答案版C++篇,后续继续更新游戏逻辑篇.unity篇.图形学篇,并整理成文档,可在公号[游戏君五尘]获取 原文链接 游戏开发面试答案篇(一)-- C++篇​ 目录 一.基础语法 二 ...

  4. Cocos2D手机游戏开发之优化篇

    Cocos2D手机游戏开发之优化篇 在这个手机游戏盛行已久的年代,一款产品想要博得更多用户的喜爱就要在细节上做得更加到位.而游戏的优化在这里面起到了非常关键的作用.试想下,一款画面和玩法都深受用户喜欢 ...

  5. 游戏开发总结-java篇

    游戏开发总结-java篇 前言 网络通信 数据存储 逻辑开发 逻辑开发一般遇到的问题有: Java游戏服务器方面的开发要掌握的技术: java服务器目前主流框架技术 前言 Java语言,由于学习成本低 ...

  6. 基于laya Air引擎的游戏开发之简介篇

    什么是HTML5? 狭义的HTML5 在程序员眼中,HTML5是超文本标记语言(HTML)第五次重大修改的新标准,该标准历经8年的艰苦努力,万维网联盟于2014年10月29日宣布HTML5标准规范终于 ...

  7. 微信小程序游戏开发│智力测试游戏——button版

    本案例开发智力测试游戏,当用户进入游戏后自动出现题目和选项(如图1).用户选择答案后如果正确自动进入下一题,也可以单击"上一题""下一题"按钮进入到上一题目或下 ...

  8. 81款国学游戏开发教程第一篇(诗词拼图)

    关于写81款国学游戏的初衷,一是为了传承国学,因为那是我们的根,也是未来人们可以创新和革命的根本.革命就是革新,革命的基础就是有命可以革.二是为了让那些想学习游戏开发的人提供参考,三是为了让自己写的游 ...

  9. [置顶] mmog游戏开发之业务篇

    这周不是很忙,因为我们的游戏开发了近一年,由于公司的业务调整,在游戏开第二服的时候,老板果断的把项目停到了. 感觉超级的不爽啊.因为这个游戏项目像我的孩子一样和我一样成长,里边的大概的业务逻辑都是偶实 ...

  10. XNA游戏开发之字符篇

    摘要: 游戏中开发不同于一般应用程序的开发,它更注重于界面美观,我们需要在游戏界面设计中花费大量的时间以便使它看起来更炫.更酷,当然这其中就少不了游戏中的字符文本,那么如何制作出漂亮的游戏文本呢?今天 ...

最新文章

  1. 【笔记】springboot使用Spring-data-jpa
  2. 前端学习(2875):原生js模块化+入口模块和子类的编写
  3. UNIX(进程间通信):16深入理解Socket
  4. 【mybatis系列】自定义实现拦截器插件Interceptor
  5. Werkzeug routing
  6. 学生阅读作业三——对习而学教学方式的思考
  7. php 字母加1,PHP语法(1)
  8. Sysinternals Suite
  9. 关于Excel导入SQLServer的说明
  10. 在IFC标准模型如何实现室内灯光管控?
  11. 小白的网站seo经验
  12. 微信分享接口配置和调用
  13. 国外LEAD网站采集你会了吗
  14. 微信收到的文件怎样通过电脑打印
  15. 蜂鸣器制作“ 孤勇者 ”音乐
  16. 判断字符串是否为回文的三种常用编程语言实现
  17. 计算机键盘被锁怎么解,电脑键盘锁了怎么解锁 电脑键盘解锁方法【详解】
  18. 微信小程序电影购票+后台管理系统
  19. Java使用poi和jfreechart生成excel图表图片
  20. java设置铃声_APP集成小米消息推送自定义铃声设置

热门文章

  1. 没有什么内存问题,是一行Python代码解决不了的
  2. 每日算法系列【LeetCode 926】将字符串翻转到单调递增
  3. NLP—4.如何阅读paper
  4. mysql基础8-运算符、函数、索引
  5. 二叉树最 前序、中序、后序、层序遍历(最终)
  6. pytorch GPU分布式训练 数据并行
  7. 解密阿里云之飞天平台内核
  8. 《SaaS架构设计》新书SD会议首发签售
  9. 逻辑斯谛(Logistic)回归、参数估计教程
  10. DML、DDL的概念与区别