当前位置: 首页 > news >正文

做外贸网站包括哪些奉贤青岛网站建设

做外贸网站包括哪些,奉贤青岛网站建设,湖南软件定制开发,网页设计与制作书【C】面试题整理 文章目录 一、概述二、C基础2.1 - 指针在 32 位和 64 位系统中的长度2.2 - 数组和指针2.3 - 结构体对齐补齐2.4 - 头文件包含2.5 - 堆和栈的区别2.6 - 宏函数比较两个数值的大小2.7 - 冒泡排序2.8 - 菱形继承的内存布局2.9 - 继承重写2.10 - 如何禁止类在栈上分…【C】面试题整理 文章目录 一、概述二、C基础2.1 - 指针在 32 位和 64 位系统中的长度2.2 - 数组和指针2.3 - 结构体对齐补齐2.4 - 头文件包含2.5 - 堆和栈的区别2.6 - 宏函数比较两个数值的大小2.7 - 冒泡排序2.8 - 菱形继承的内存布局2.9 - 继承重写2.10 - 如何禁止类在栈上分配内存 三、智能指针3.1 - 智能指针是线程安全的吗3.2 - 线程安全的几种方法 四、 STL4.1 - map 删除 五、参考 一、概述 最近面试感觉有些比较基础的好久不用就有些生疏了整理一下。 【备注】题目的答案是个人整理的不能保证是标准答案。 二、C基础 2.1 - 指针在 32 位和 64 位系统中的长度 4 字节和 8 字节 32/8 4 64/8 82.2 - 数组和指针 以下代码在 32 位和 64 位系统中分别打印什么 char a[] 123456789; const char* b 123456789; std::cout sizeof(a) std::endl; std::cout sizeof(b) std::endl;32位打印 10 和 464位打印 10 和 8 指针已经在第一题中说过了就不重复了。char 数组的大小需要加上最后的 \0。 2.3 - 结构体对齐补齐 在 32 位和 64 位系统中分别是多少 struct M {int a;double b; };printf(%d, sizeof(struct M));答案 均为16这里是结构体的对齐补齐与系统位数无关。 2.4 - 头文件包含 两种包含头文件的区别 #include stdio.h #include stdio.h尖括号编译器会从系统目录中查找双引号编译器会首先从当前项目目录查找找不到再去系统目录中查找。 虽然#include“的查找范围更广但是这并不意味着不论是系统头文件还是自定义头文件一律用#include”“包含。因为#include”的查找顺序存在先后关系如果项目当前目录或者引用目录下存在和系统目录下重名的头文件那么编译器在当前目录或者引用目录查找成功后将不会继续查找所以存在头文件覆盖的问题。另外对于系统头文件用#include包含查找时一步到位程序编译时的效率也会相对更高。 2.5 - 堆和栈的区别 堆(heap) 向上增长内存存储动态分配的内存需要程序员自己管理分配和释放。栈(stack) 向下增长内存存储静态分配的内存系统会自动释放。 2.6 - 宏函数比较两个数值的大小 要求不使用大于、小于和if #define MAX(a,b) (int)((a)/(b)) 0 ? (a) : (b);定义宏函数需要注意入参需要使用小括号括起来避免传入算式导致预期外的计算 MAX(4-1,5); // 不加小括号 4 - 1/5 3 返回3 值错误。 // 加小括号 (4-1)/(5) 0, 返回值为 5。2.7 - 冒泡排序 void bubbleSort(int arr*, int n) {for (int i 0; i n - 1; i){for (int j 0; j n - i - 1; j){if (arr[j] arr[j1]){int tmp arr[j];arr[j] arr[j1];arr[j1] arr[j];}}} }如果我是面试官我会在这里考一个打印 arr 的 sizeof 因为 数组在传参时会退化为指针。 2.8 - 菱形继承的内存布局 class A { public:int a; };class B : public A { public:int b; };class C : public A { public:int c; };class D : public B, public C { public:int d; };可以看到 A 中的内容被重复记录了两次 若改为虚继承虚继承是为了解决冗余和二义性 class B : virtual public A {/*...*/}; class C : virtual public A {/*...*/};则会出现一个虚基表指针 vbptr (virtual base pointer) 记录偏移 VS Developer Command Prompt 查看内存布局方法 cl /d1 reportSingleClassLayoutD filename.cpp 2.9 - 继承重写 实现一个 Shape 类定义纯虚函数 area定义 Rectangle 和 Circle 类继承 Shape 类在main函数中打印面积。 class Shape { public:virtual double area() 0; };class Rectangle : public Shape { public: Rectangle(double width, double length):m_width(width), m_length(length) {}virtual double area() override{return m_width*m_length;} private:double m_width {0.0};double m_length {0.0}; }; #define PI 3.1415926 class Circle : public Shape { public:Circle(double radius): m_radius(radius){}virtual double area() override{return PI * m_radius * m_radius} private:double m_radius{0.0}; };调用 #include iostream int main(int argc, char* argv[]) {Rectangle rect(3.0, 4.0);Circle c(2.0);std::cout rect.area() std::endl;std::cout c.area() std::endl; }2.10 - 如何禁止类在栈上分配内存 其实只要禁用 析构就可以在编译时报错但是为了方便继承和使用 class A { public:static A* Create(){ return new A();}void Destroy() { delete this;} // 不能为 static因为静态函数中无 this 指针 protected:~A() {};A() {};A(const A rhs) {/*...*/};A(const A rhs) {/*...*/};const A operator(const A rhs) {/*...*/};const A operator(const A rhs) {/*...*/}; };三、智能指针 3.1 - 智能指针是线程安全的吗 不是虽然引用计数是原子操作但还有其他的操作 3.2 - 线程安全的几种方法 加锁原子变量 std::atomic 四、 STL 4.1 - map 删除 改错。 using std::map; using std::string; int main(int argc, char* argv[]) {mapstring, string mapData;mapData[a] aaa; mapData[b] bbb; mapData[c] ccc; for (mapstring, string::iterator imapData.begin(); i!mapData.end(); i){if (i-first b){mapData.erase(i);}}return 0; }错误是容器删除元素会有迭代器失效网上给的改错方式是将for循环 i 删除 加到函数中 for (mapstring, string::iterator imapData.begin(); i!mapData.end(); /*i*/) {if (i-first b){mapData.erase(i);}else{i;} }个人感觉这样也可以 for (mapstring, string::iterator imapData.begin(); i!mapData.end();i) {if (i-first b){i mapData.erase(i);--i;} }五、参考 https://blog.csdn.net/rammuschow/article/details/107947302 includehttps://en.cppreference.com/w/cpp/container/map/erase std::map erase 函数https://blog.csdn.net/AgoniAngel/article/details/105893798 菱形继承内存分布
http://www.w-s-a.com/news/223934/

相关文章:

  • 瑞安微网站建设广州推广
  • 做旅游宣传网站的流程图中国企业集成网电子商务
  • 开发商城网站开发成交功能网站
  • 网站建设公司专业公司排名搭建网站的企业
  • 网站建设难吗海南智能网站建设报价
  • 企业网站建设选题的依据及意义校园网站建设的论文
  • 网站版面设计方案水电维修在哪个网站上做推广好些
  • 邹平建设局官方网站企业宣传片广告公司
  • 南京建设集团网站建站极速通
  • 网站建设与推广员岗位职责网站开发应如何入账
  • 企业网站的作用和目的手机回收站
  • 大连零基础网站建设培训电话郎溪做网站
  • 成都科技网站建设注册公司最少需要多少注册资金
  • 找公司做网站注意事项麻城建设局网站停办
  • 沧州企业做网站wordpress 消息通知
  • 网站开发外包计入什么科目怎样申请网站空间
  • 西安建设局网站小孩把巴塘网站建设
  • 做网站 客户一直要求改郑州做优惠券网站的公司
  • 专门做特卖的网站是什么东北石油大学秦皇岛吧
  • 网站建设需要云主机吗wordpress 下载数据表插件
  • 集团网站建设哪个好石龙镇仿做网站
  • 网站建设费税率是多少项目备案信息查询
  • 网站开发php有哪些权威发布型舆情回应
  • 凡科建站有哪些弊端百度手机怎么刷排名多少钱
  • 南山网站公司在招聘网站做销售工资高吗
  • 百度联盟怎么加入赚钱合肥seo按天收费
  • 网站建设与用户需求分析加盟店排行榜加盟项目排行榜
  • 柳州市诚信体系建设网站wordpress建手机网站吗
  • 网站策划书是什么水产公司网站源码
  • 温州做网站多少钱网站服务器机房