后台开发核心技术与应用实践读书笔记(一)

本文深入探讨C++编程的基础知识与核心技巧,包括函数、数组、指针、引用、结构体、预处理等内容,解析C++语言的特性与应用实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台开发核心技术与应用实践读书笔记(一)

第1章 C++编程常用技术

1.1 第一个C++程序

  1. #include<>与#include” “

    后者搜索当前目录,在搜索标准目录

  2. #include与#include<iostream.h>

    两者是不同的,前者是C++标准为了与C语言区别开,也为了正确的命名空间,规定的头文件不带.h;

1.2 函数

  1. 函数的定义

  2. 函数重载

    C++允许同一个函数名定义多个函数,但必须参数类型不同与参数个数不同。

  3. 函数模板

    建立一个通用函数,函数类型与具体形参不指出

1.3 数组

  1. 数组的定义

    相同类型的集合,地址是连续的

  2. 字符数组

    1. strlen与sizeof的区别
      • strlen()是函数,在运行时才能计算。参数必须是字符型指针(char),且必须是以’\0’结尾*的。当数组名作为参数传入时,实际上数组已经退化为指针了。它的功能是返回字符串的长度。
      • sizeof()是运算符,而不是一个函数,在编译时就计算好了,用于计算数据空间的字节数。因此,sizeof不能用来返回动态分配的内存空间的大小。sizeof常用于返回类型和静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系

1.4 指针

  1. 指针概念

    通过地址能找到所需的变量的单元,地址指向变量单元,因此将其形象化为指针,注意区分变量指针指针变量

  2. 数组和指针

    1. 数组指针也成为行指针

    2. 指针数组不同于数组指针(优先级,第一个是()第二个是[])

      数组指针int(*p)[n]:指向一维数组的指针,也称行指针,专门用来指向二维数组
      指针数组int*p[n]:不能p=a,可以*p=a赋值这里*p表示指针数组第一个元素的值,a的首地址的值

  3. 字符串和指针

    在这里插入图片描述

1.5 引用

  1. 引用是什么

    变量的别名,必须初始化,之后不允许改变

  2. 引用做参数

    内存中不会产生实参的副本,而是直接对实参进行操作,因此传参效率最高,所占空间最小

  3. 常引用

    既要提高效率又要使得传递的参数不会在函数中改变

1.6 结构体、共用体、枚举

  1. 概念

    1. 结构体

    2. 共用体

      • 是一种特殊的类,可以定义不同的数据类型,共用一段内存。不同时间内保存不同的数据类型和长度的变量,节省了空间。注意同一时刻只能存储其中一个成员变量的值
      • 利用共用体判断系统大小端
      #include<iostream>
      using namespace std;
      
      union test{
          short a;
          char b[sizeof(short)];
      }
      int main(){
          test t;
          t.a = 0x0102;//只能用共用体里面的变量
          if(t.b[0] == 0x02)
              cout<< "大端"<<endl;
          else
              cout << "小端" << endl;
          return 0;
      }
      
      • 几乎所有网络协议进行传输,当两台采用不同的字序,在发送数据之前必须进行字节序转换为网络字节序(大端)
    3. 枚举

      实际生活中,变量的取值限制在一个有线的范围内(一周七天、一年十二个月),如果将这些量说明为基本类型不合适,因此就有了枚举。

      注意

      • 是一种基本数据类型,而不是构造类型
      • 枚举值是常量不是变量,不能进行赋值操作,如果一定要这样做,使用强制类型转换
      • 只能把枚举值赋值给枚举变量
  2. 结构体、共用体内存单元字节数计算

    1. 64位机器上各个数据类型所占存储空间

      (1)char:8bit=1byte。
      (2)short:16bit=2byte。
      (3)int:32bit=4byte。
      (4)long:64bit=8byte。
      (5)float:32bit=4byte。
      (6)double:64bit=8byte。
      (7)long long:64bit=8byte。

      其中,long类型在32位机器上只占4Byte,其他类型在32位机器和64位机器都是占同样的大小空间

    2. 内存计算规则

      1. union以最长为准
      2. struct各个成员变量都分配空间,且总的大小为结构体中最大的类型字节数的倍数

1.7 预处理

​ C++提供的预处理功能有:宏定义、文件包含(之前已讲)、条件编译、布局控制。

  1. 宏定义(进行简单的替换)

    1. 替换文本是一个表达式时,不加括号可能会发生错误:2+9 ->2+9*2+9
    2. 在带参数的宏定义的使用,也容易产生误解:area(2+2)-> 2+2*2+2
  2. do …while(0)

    将一组语句包成一个复合语句,以防预处理时被拆散

  3. 条件编译

    __cplusplus是C++预定义宏,表示开发环境是C++

    注意:C++语言为了支持函数重载,在编译期间会对函数名称进行一些处理,如加入参数类型和返回类型,而c语言中没有这种现象,顾不支持函数重载

索引

  1. 第 1 章 C++常用的编程技术
  2. 第 2 章 面向对象C++
  3. 第 3 章 常用的STL使用
  4. 第 4 章 编译
  5. 第 5 章 调试
  6. 第 6 章 TCP协议
  7. 第 7 章 网络IO模型
  8. 第 8 章 网络分析工具
  9. 第 9 章 多线程
  10. 第 10 章 进程
  11. 第 11 章 进程间通信
  12. 第 12 章 HTTP协议
后台开发核心技术应用实践 作者:徐晓鑫 著 出版日期:2016年08月06日 封面宣传语:腾讯云平台技术总监黄世飞、Facebook对外支付项目主程张子兴、微软软件工程师彭可竞、阿里巴巴资深算法工程师周乐、百度大数据高级测试工程师畅晋联袂推荐;围绕后台开发需要掌握的核心技术,从多个方面、多个角度进行了阐述,覆盖了该领域的几乎所有内容;充分抓住本质并结合实践,文字通俗易懂,可操作性强 出版书名:后台开发核心技术应用实践 作者:徐晓鑫 著 封底文字 专家评价 后台开发个“历史悠久”的领域,同时也是个沉淀深厚,高技术价值的领域。本书清晰、严谨、务实的风格显示出晓鑫对该领域知识的深刻理解。 ——张子兴 Facebook对外支付项目主程,美国加州MenloPark 每位从事后台开发的专业人士都需要后台开发指南。对每位想要认真从事该领域工作的人来说,本书是本绝对必读的书籍。 ——彭可竞 微软软件工程师,美国华盛顿州Redmond 本书是作者多年后台开发、架构和研究的精华。书中用通俗的文字、详尽的示例代码,结合实际工作中的案例,讲述了后台开发方方面面的知识,内容丰富。对于从事后台开发的人员,这是本很好的由浅入深的学习书籍。 ——周乐 阿里巴巴资深算法工程师,北京望京 使用C++语言进行后台开发定的门槛,本书可以很好地帮助你跨过这个“门槛”。 ——畅晋 百度大数据高级测试工程师,北京上地 前勒口 互联网网民日益剧增,各种应用层出不穷,各项技术更新不断。单是游戏行业,近几年就经历了从端游、页游到手游的巨大变迁,客户端更新迭代之快,始料未及。而后台开发中使用到的技术,却变化不是很大。让服务性能更高、处理能力更强、安全性更好,是后台开发工程师永恒的主题。 后台开发中用到的技术,深而广,需要读的“大部头”很多,光是Richard Stevens的APUE,UNP,TCP/IP详解就够读个半年以上。读者通过阅读本书,可以从实践出发,快速由浅入深地进入后台开发领域。在读完本书,有了实践的经验之后,再去阅读大师们的著作,会更有体会,更懂得如何欣赏。 读书的最高境界莫过于“把书读薄,把书读厚”。本书文字通俗易懂,让你更快地“读薄”,同时又涉及较多的核心知识点,顺着这些知识点,读着读着也发觉“读厚”了。 后勒口 徐晓鑫,腾讯资深软件研发工程师,先后在腾讯游戏之洛克王国、QQ会员、QQ秀等项目工作,精通后台开发各种技术,实战经验丰富。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值