学习笔记C++(结构体、指针、引用、栈——基本概念梳理)

先补充点结构体、指针、引用、堆栈基本知识

各一个学习视频的连接--基础版


结构体概念:特殊的类(需要表示一组集成的数据,不需要用函数计算)

定义:

struct 机构体名{

公有成员

protected:

保护成员

private:

私有成员}

注:结构体的成员既可以是数据成员也可以是函数成员


内存空间的访问形式:

通过变量名访问/通过地址访问

基本语句还有其他知识点交叉部分参考

指针概念:内存地址,用于间接访问内存单元(所以我们在指针中可以存放其他变量的地址可以存放其他代码的地址---就是所指针里容纳的是所指向data的地址,它本身也是占内存空间的)

例子:static int i;(假设i的地址是2000)

static int* ptr = &i (这里ptr的初始化就是2000,这里的*代表指针,int代表指向的对象类型)

使用:指针运算是个寻找地址的过程

如:*ptr = 3---先寻到地址2000,把3放到2000处,即i= 3,这里的3 放进去占有的字节数就等于定义的对象类型字节数,这里之前定义的是int 所以3 就占用4个字节

所以这个运算分两步寻址、赋值


引用基本概念:引用只是别名,不是实体类型(也就是说c++编译器不为引用单独分配内存空间),对一个对象的引用,就是直接对这个对象的操作

使用:

1、引用必须初始化(引用必须指向所引用的对象)

int a = 3;

int& ra = a;

int &b ;//错误,引用必须初始化

const int &b = 10;//正确对字面值常量10的引用

2、引用不能为空

int &b ;//错误,引用不能为空必须有所引用的对象

3、引用不能更换目标

#includeusing namespace std;int main(void){

    int a = 3;

    int b = 4;

    int& ra = a;

    // int& ra = b;//错误,多次初始化    return 0;

}

辨析:引用和指针的联系和区别

1、存在空指针,但是不存在空引用

void * a;//空指针,合法//

void& b;//空引用,不合法

2、但是指针可以不初始化,而引用必须初始化

3、存在指针数组 ,不存在引用数组

int* a[3] ={&x,&y,&z };//定义了一个有三个整形指针变量的指针数组 a ,合法 //

int& a [3] ={x,y ,z};//报错,不允许使用引用数组,因为引用没有内存的分配


栈:是一种只能从一端访问的线性群体,是后进先出的数据结构

计算过程

这里注意的是优先级高的可以入栈

基本操作:初始化、入栈、出栈、清空栈、访问栈顶,检测栈状态

模板例子

这里从top指向栈顶,push压入栈函数,pop弹出栈函数 ,清空栈clear函数,peek读取栈顶元素不删除它,还有判断栈是否empty是否full函数

模板实现

这里构造函数stack将指针top函数置成-1(初始状态)

push将数据&item压如栈里,先判断栈不满的情况下,top函数+1指向下一个可用的空间,将item放进去,出栈返回栈顶元素同理

模板实现

判断栈空、满、清空的基本设置

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,517评论 1 51
  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,610评论 1 19
  • 1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类?...
    少帅yangjie阅读 5,000评论 0 14
  • 曾听过一句话“人生如旅行”,各花入各眼,同样一句话,相信也是各人有各人的看法。我认为人生和旅行有同也有不同。 相同...
    长弓心悦阅读 317评论 0 2
  • 曾经默默想过,暗恋是所有爱情形式中最好的一种,它不牵涉除了自己之外的第二个人,那是旷日持久的单相思一个人的兵荒马乱...
    John小姐阅读 735评论 0 0