C++的学习日记1(C++基础)

汇编(低级语言) -> Fortran(formula translation) (第一个高级语言)(195x年)
-> B -> C(Dennis Ritchie 丹尼斯里奇)
贝尔实验室(AT&T->朗讯->诺基亚)

UNIX(LINUX前身) 操作系统:能够管理计算机资源,处理计算机与用户之间交互的“一组程序”。

C++与C语言相比 优势?

C语言特点: “面向过程”:注重的是数据与算法
过程化编程:首先确定需要计算机采取的操作,然后使用编程语言来实现;
问题: 可重用性差/可维护性差/无法满足用户需求
C++语言特点: “面向对象”:(OOP)object-oriented Programming
对象化编程:让语言满足问题的需求;

命名空间 namespace: 不同厂商可能推出不同的类库中含有相同名称的方法
namespace用来确定用哪一个厂商的方法(为了防止二义性)
1.不同namespace中的变量,函数,结构体;
2.namespace 可以嵌套

using声明/using编译指令

using声明:using NS1::a 后面所有的a都来自于NS1
using编译指令 using namespace std; cout / cin / system

const 常量修饰符
C语言中,const修饰的变量是一个常变量,本质上还是一个变量,有自己的存储空间;
并不是一个真正的常量
C++中,const声明的变量是一个真正的常量(没有自己的存储空间),无法间接被改变
const声明的变量 被放入“符号表”
key:常量修饰符、真正的常量、“符号表”


面试题:C++中const作用
1.const声明的变量是一个真正的常量(没有自己的存储空间),无法间接被改变
2.后续请期待
3.
4.

const与#define(宏定义)的区别
1.const可以指定数据类型;
2.所处时期不同:
#define是属于预处理阶段 (key:文本替换)
const是属于编译器处理阶段
3.const可以用于一些复杂的类型 如数组或者结构体

*#include
using namespace std; 标准命名空间standard

int main()
{

cout << "hello world!" << endl;


 for(int i = 0;i < 10;i++)   实用性加强:什么时候用 可以什么时候定义
 {
 	cout << i << "," ;
 }
 cout << endl;*

 **struct类型加强:** C++中认为一个结构体就是一个新的数据类型,不需要用typedef

 新增数据类型 bool  布尔类型(非0即1)  占用一个字节
bool a = false;
bool b = true;
b += 10;

cout << sizeof(a) << endl;
cout << b << endl;
 任何数值或者指针都可以被隐式转为bool类型


  sizeof / strlen

 char *str = "1111abcd";
 char arr[9] = {1};

 cout << "sizeof(str):" << sizeof(str) << endl;
 cout << sizeof(arr) << endl;      总结 sizeof和strlen的区别



 **运算符**
  单目运算符 ++ -- 
  双目运算符  + - * /
  三目运算符   ( ? :)  C++中可以作为左值使用  =

int e = 10;
int f = 20;
/*int ret = e>f?e:f;*/

(e>f?e:f) = 40;
 作为左值使用的时候,不能有常量
cout << "e:" << e << endl;
cout << "f:" << f << endl;



system("pause");
return 0;

}

C++中引用
引用可以看作一个“已定义变量”的“别名”;(互为别名)
(通过引用变量作为参数,函数使用原始数据,而不是副本)
这样的引用允许a和b互换使用;他们指向相同的值和内存单元,改变a就等于改变b;
意义?
在一些情况下 引用可以代替指针;(指针容易出错)
引用就有了更好的实用性和可读性

引用本质
引用占4个字节 (虽然引用是别名 但是他有自己的存储空间)
引用内部实现: Type &name – Type *const NAME (内部是用常指针实现)
引用作为函数返回值
返回栈变量可能会出错,尤其是再次使用的时候有可能会出错
尽量避免使用 函数返回值为引用(返回栈变量)
返回全局变量或者静态变量是可以的

常引用
const int &b = a; 作用:让b拥有只读属性,不能通过b来改变a
普通引用 int &b = a;

 1 用变量初始化常引用
   int a = 10;
   const int& b = a;

 2 可以用常量初始化常引用;
   const int &a = 40;
   普通引用不可以引用一个常量 int &a = 40错误!!!
   此时这个a有了const修饰 变成一个只读变量

三种函数传参方法: 值传递 指针传递 引用传递

内存分区模型
1 代码区:存放函数体的二进制代码(操作系统管理)
2 全局区:静态变量、全局变量、常量
3 栈区:编译器自动分配释放,存放函数参数值,存放局部变量
4 堆区:程序员手动分配和释放,(指针)

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值