2020.7.29c++学习笔记

一。字符串
在数组中使用字符串
区分sizeof运算符和strlen()函数:
sizeof:指出整个数组地长度
strlen():
返回的是存储在数组中地字符串地长度
只计算可见地字符,而不把空字符计算在内
每次读取一行字符串输入
getline
特点:将丢弃换行符,而输入到数组之中会用空字符来代替换行符
例子:cin.getline(name,20):
函数最多读取19个字符
读入到地数组叫name
get()
特点:不读取不丢弃换行符,将其留在输入队列,从而导致下一次调用读到的是换行符从而产生程序错误。
需要使用cin.get()在解决
二。指针和自由存储空间
1. 指针与C++基本原理
(1)OOP强调的是在运行阶段(而不是编译阶段)进行决策
(2)使用OOP时,可能在运行阶段确定数组的长度,为此,语言必须允许在程序运行时创建数组,而c++采用的方法时,使用关键字new请求正确数量的内存以及使用指针来跟踪新分配的内存的位置。
2.指针的声明
(1)int *p_updates
(p_updates本身是指针,且p_updates指向int类型)
(2)int* p_updates
3.指针的危险
(1)初始化的时候没有声明指针指向谁 这会导致程序将指针解释为存储223323的地址,如果指针fellow的值是1200,计算机将会把“223323”放在地址1200上,即使这恰巧是程序代码的地址。这会使得程序代码意外丢失,会导致一些最隐匿的bug。
4.指针和数字
(1)指针不能直接赋值:在这里插入图片描述
(2)需要将右边赋值的内容也定义为指针类型:在这里插入图片描述
5.使用new来分配内存
在这里插入图片描述

(使用new来分配内存,是在程序运行时进行的)
6.使用delete释放内存
在这里插入图片描述
这将释放ps指向的内存
7.使用new来创建动态数组
(1)使用new,如果在运行阶段需要数组,则创建它;如果不需要,则不创建————动态联编
(2)要创建一个包含10个int元素的数组:在这里插入图片描述
new运算符返回的时第一个元素的地址,在这个例子中,该地址被赋给了psome,如果要释内存放:
在这里插入图片描述

(3)使用new和delete时要注意以下规则:
在这里插入图片描述
8.使用动态数组

  • 第一个元素:*psome或者psome[0]
  • 第二个元素:psome[0]
  • 第三个元素:……

三。指针、数组和指针算术
1. *(stacks+1)和stacks[1]等价
2.使用呢哇、来创建数组以及使用指针来访问不同的元素很简单,只要把指针当作数组名来对待即可。
3.指针小结
(1)给指针赋值:在这里插入图片描述
(2)给指针解除引用:意味着获得指针指向的值
(3)指针算术:加1的结果等于原来的地址值上加上指向的对象占用的总字节数;将一个指针减去另一个指针:将得到一个整数,仅当两个指针指向同一个数组(也可以指向超出结尾的一个位置)时,这种运算才有意义,这将得到两个元素的间隔。
4.指针和字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值