KyleLoudon《算法精解》作品简介与读书感悟

1指针变量的基本操作基本操作inta,*iptr,*jptr,*kptr;iptr=jptr=iptr;*jptr=100;kptr=NULL;图解:1.1己址和己空间指针变量也是一个变量,对应一块内

1 指针变量的基本操作基本操作

int a,*iptr,*jptr,*kptr;iptr = &a;jptr = iptr;*jptr = 100;kptr = NULL;

图解:

1.1 己址和己空间

指针变量也是一个变量,对应一块内存空间,对应一个内存地址,指针名就是己址。这空内存空间多大?一个机器字长(machine word),32位的CPU和操作系统就是32个位,4个字节,其值域为:0x-0xFFFFFFFF。64位的CPU和操作系统就是64个位,8个字节,其值域为:0x-0xFFFFFFFFFFFFFFFF。

1.2 己值、他址、他空间

指针变量的值就是其指向的空间的地址,指向的地址的空间大小就是指针变量指向类型的大小。

1.3

int *ptr;int *ptr_2;int a = 1;ptr_2 = &a;// *ptr = 0;// 非法操作,其指向其指向的内存空间还未确定ptr = &a; // ① 右值是一个变量地址ptr = ptr_2;// ② 右值是一个同类型指针,且已初始化ptr = (int*)malloc(sizeof(int));// ③ 右值是一个内存分配函数返回一个void指针*ptr = 0; // 合法操作,opencv算法精解pdf下载,ptr有了确定的指向及指向的内存空间;,

int *ptr;int *ptr_2;int a = 1;ptr_2 = &a;// *ptr = 0;// 非法操作,其指向其指向的内存空间还未确定ptr = &a; // ① 右值是一个变量地址ptr = ptr_2;// ② 右值是一个同类型指针,且已初始化ptr = (int*)malloc(sizeof(int));// ③ 右值是一个内存分配函数返回一个void指针*ptr = 0; // 合法操作,ptr有了确定的指向及指向的内存空间;

标个记号准备上传对大神的源码分析。好了,我分析了上楼大神的代码实现,具体参考他的代码,分享下。注:可以看看《算法精解》Kyle Loudon著 或者《数据结构》 主编 安训国 他们说的堆栈原理。include <stdio.h> char* dg。

1.4 函数之间指针值的传递

34;%d\n&34;%d\n",*pNew); // -858993460,垃圾值while(1);return 0;}

可以在funcForSpace()内分配一块堆内存,传递给主调函数。

include <malloc.h>int g(int **iptr) { // 当试图修改主调函数的一级指针变量时,被调函数的参数是一个二级指针if ((*iptr = (int *)malloc(sizeof(int))) == NULL)return -1;}int main(){int *jptr;g(&jptr);*jptr = 10;printf(&34;,*jptr); // 10free(jptr);while(1);return 0;}

读书笔记: 书名:童年 作者:高尔基 好词 瑗际 歪斜凌乱 灰雾茫茫 轻声慢语 胆怯 不知所措 软塌塌 澄澈 耸向 独树一帜 难以置信 琐事 矗立 与人为善 不折不扣 不动声色 窥伺 掩面而笑 绵绵不断 不为所动 好句 1.我看着他好。

可以图示一下以上代码指针的传递过程:

1、美的力量绝不亚于思维的力量。一个再深刻的思维都可能变为常识,只有一个东西是永不衰老的,那就是美。2、秋天的白云,温柔如絮,悠悠远去,梧桐的枯叶,正在秋风里忽闪忽闪地飘落。3、这一幢幢房子,在乡野纯净的天。

以下图示a表示计算机内存,b表示一个函数调用时在栈(stack)上开辟的栈帧空间:

2 指针变量与数组名

数组名在一定的上下文中会转换为指向数组首元素的地址,以方便指针的算术运算,如

39;x&34;%d,%c\n",a[3],b[3]); // 10,xwhile(1);return 0;}

可以图示一下以上代码指针的偏移细节:

3 主调函数与被调函数之间的指针传递

看以下代码:

KyleLoudon《算法精解》作品简介与读书感悟

以上代码可用以下图示理解:

swap1传值:

swap2传址(指针传递):

4 数组做函数参数

二维数组是数组的数组,n维数组是n-1维数组的数组。内存是一维的字节序列,所谓的n维数组其实只是一个逻辑意义的表示,其物理结构还是一维线性的。

n维数组的元素是一个n-1维数组。如果用指针指向一个n维数组,其指针类型必须有n-1维的长度信息,当其用作函数参数时也是如此。

void g(int a[][2]) { // void g(int(*a)[2]){是相同写法a[2][0] = 5;}void caller(){int a[3][2];int (*p)[2] = a;*(*(p+2)+0) = 7; // p=2表示相对于地址p偏移sizeof(*p)printf(&34;,a[2][0]);// 7g(a);printf(&34;,a[2][0]); //5}

以下代码可以用以下图示辅助理解:

ref:

文章 记述 ”儿时盼望观看迎神赛会的急切、兴奋的心情和被父亲强迫背书时扫兴又痛苦的感受 , ,写出了孩子在父母毫不顾及自己心理时的无奈和厌烦, 指出 了强制的封建教育对儿童天性的压制和摧残 。《五常》文章。

Kyle Loudon《 Mastering Algorithms with C》

-End-

上一篇 2023年02月04 12:30
下一篇 2023年01月23 21:56

相关推荐

  • 舞力全开怎么玩,舞力全开手柄正确握法

    IT之家1月15日消息,舞力全开手柄正确握法,游戏开发商育碧宣布,《舞力全开》国行版将推出春节活动,玩家能够在春节活动体验到全新的国行独占中文歌曲。IT之家了解到,全新独占歌曲《兔子舞》将于1月16日

    2023年02月04 262
  • 塞尔达怎么玩,塞尔达怎么玩才好玩

    《塞尔达:旷野之息》为系列作以来自由度最高的作品,而相信有不少玩家,是冲着这部作品购买Switch的,但平常不玩游戏的人,对于初次进入海拉鲁大陆冒险,塞尔达怎么玩才好玩,想必有许多不解的地方,就让小编

    2023年02月13 232
  • 蜃气楼怎么打,蜃气楼击杀十个虾兵

    [-海峡网]近日,阴阳师推出了蜃气楼首领,那么阴阳师蜃气楼逢魔BOSS怎么打呢?下面一起来看看吧。阴阳师蜃气楼打法攻略推荐:阴阳师逢魔蜃气楼一共有三个阶段,第一阶段打虾兵,第一波蜃气楼会放出一些虾兵,

    2023年02月02 219
  • 梦幻西游怎么屏蔽玩家,梦幻西游怎么永久屏蔽摊位

    在智能手机、移动网络飞速发展的今天,广受玩家朋友欢迎的《梦幻西游》电脑版也跟随潮流研发了“指尖上的梦幻”—《梦幻西游》互通版。互通版不仅具备着跨越空间、操作简单等优势,还能帮助玩家整合碎片时间,比如做

    2023年02月06 219
  • ps4怎么联网,ps4连接WiFi教程

    连不上网大概是主机玩家最头疼的事儿,所以好多人上加速盒子之类的其实PS4系列第一篇我就在wifi设置里写了一个当时我用着还行的DNS不过也坚持不了多久,没事儿就连不上,还得上网一个一个查,一个一个试,

    2023年05月09 283
  • 马蜀君qq号是多少

    2023年04月04 267
  • 问道押镖怎样赚钱快,问道手游押镖押金多少

    今天给大家介绍一款老端游改编而来的2D回合制游戏--《问道》的最新超全搬砖攻略~这款游戏长期稳定,且上手容易收Y可观。问道日常必刷任务:押镖、刷道、杀星、师门、通天塔、助人为乐等等都给超多金币奖励,都

    2022年12月31 290
  • 荣耀10多少钱,荣耀10刚出来多少钱

    IT之家5月13日消息荣耀X10此前官宣将在5月20日发布,荣耀10刚出来多少钱,确认搭载麒麟820芯片,荣耀X10将支持多达9个5G频段。近期,微博博主@国民鱼塘发布的荣耀X10宣传物料显示,荣耀X

    2023年03月03 234
  • gta4怎么下载

    R星经典游戏《侠盗猎车手4(GrandTheftAuto4)》因为其使用的微软GamesforLive服务不再受支持,从今年1月11日开始无法再在Steam上购买。目前《侠盗猎车手4:完全版》已正式上

    2023年02月04 247
  • 怎样用纸折飞镖,只需一张纸的飞镖

    大家好,只需一张纸的飞镖,我是折纸多多。今天我们来折炫酷的飞镖。小时候在学校经常会折这种飞镖用来打架,把飞镖甩出去非常的炫酷。我们一起来回忆下快乐的童年吧。第1步、首先准备两张同等大小的正方形纸,将每

    2022年12月30 219
  • dnf金币上限是多少,dnf账号金库金币上限8亿

    助手ID:780540752015年上线的攻坚战玩法像黑暗中的曙光,赋予了dnf新的生命。从最初的安徒恩攻坚战到现在的奥兹玛攻坚战,每次上线新的攻坚战都会引爆游戏新的热度。时过境迁,有些攻坚战已经完成

    2023年03月17 233
  • 我的世界弓怎么做

    首先,你需要准备这些工具:透明胶、高能胶枪、双面胶、彩笔、彩色纸板、白纸、塑料管。有了这些材料,我们就可以开工了,等着看好戏吧!1、要制作弓箭需要的材料有:1个燧石、4根木棍、1片羽毛、3根线。2、准

    2023年01月18 294
  • 小鱼银河魔装机神多少钱,手游银河魔装机神菲兹多少钱

    手游银河魔装机神菲兹多少钱,云顶之弈s3银河魔装机神升星,云顶之弈s3银河魔装机神怎么升星?想必很多玩家不知道如何升星。今天,小编将会给大家带来关于云顶之弈s3银河魔装机神怎么升星介绍,希望大家会喜欢

    2023年03月30 228
关注微信