`
jubincn
  • 浏览: 242511 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
文章分类
社区版块
存档分类
最新评论

6.087 Practical Programming in C, lec7

 
阅读更多
<style type="text/css"> <!-- @page {margin:0.79in} p {margin-bottom:0.08in} h3 {margin-bottom:0.08in} h3.western {font-family:"Arial",sans-serif} h3.cjk {font-family:"AR PL UMing HK"} h3.ctl {font-family:"Lohit Hindi"} --> </style>

Pointers to pointers, pointer and string arrays, multidimensional arrays. Stacks and queues.



Pointer pointers

• What does this function do?

void swap (int ∗∗a , int ∗∗b){

int ∗temp = ∗a;

∗ a = ∗b;

∗b = temp;

}

• How does it compare to the familiar version of swap?

void swap ( int ∗a , int ∗b ){

int temp = ∗a;

∗a = ∗b;

∗b = temp;

}

第一个是交换了两个指针,内存中的数据并没有改变;第二个指针没变,但内存中的数据变了。

Pointer array

• Have an array int arr [100]; that contains some numbers

• Want to have a sorted version of the array, but not modify arr

• Can declare a pointer array int ∗ sorted_array[100];containing pointers to elements of arr and sort the pointers insteadof the numbers themselves

• Good approach for sorting arrays whose elements are very large(like strings)

struct的排序中,pointer会发挥很大的作用。

String arrays

• An array of strings, each stored as a pointer to an array ofchars

• Each string may be of different length

char str1[] = "hello"; /∗length = 6 ∗/

char str2[] = "goodbye";/∗ length = 8 */

char str3[] = "ciao"; /∗length = 5 ∗/

char ∗ strArray[ ] = { str1,str2, str3};

• Note that strArray contains only pointers, not the charactersthemselves

数组存储的不是字符,而是指针,因此要注意自动变量的作用域,如果是用malloc分配的堆内存,则需要注意free的时机。

Multidimensional arrays

• C also permits multidimensional arrays specified using []brackets notation:

int world [20][30]; is a 20x30 2-Darray of int’s

• Higher dimensions possible:

char bigcharmatrix [15][7][35][4]; –what are the dimensions of this?

• Multidimensional arrays are rectangular; pointer arrays can bearbitrary shaped

二维char数组和char*数组的区别?我想二维char数组在内存中是一块连续的空间,通过指针代数来获取其中元素的地址,char*数组则是一维数组,每个元素都是指针,两者最大的不同在于二维char数组中是存储对象的,而char*数组则不存储任何对象。




分享到:
评论

相关推荐

    Umich反应工程_1-25课件.zip

    资料目录.bat Advice to next year student.doc lec1.ppt lec10.ppt lec11.ppt lec12.ppt lec13.ppt lec14.ppt lec15.ppt lec16.ppt lec17.ppt lec18.ppt lec19.ppt ...lec6.ppt lec7.ppt lec8.ppt lec9.ppt

    MIT10_626S11_lec06.pdf

    In the previous lecture, we leant about impedance spectroscopy. Electrochemical impedance spectroscopy is the technique where the cell or electrode impedance is platted versus frequency. Thus, the ...

    programming in computing 10a lec2 ppt

    programming in computing 10a lec2

    EI374 高级算法-全套 PPT 课件-笔记

    EI374 高级算法-全套 PPT 课件-笔记 lec1-slides.pdf lec1.pdf lec2-slides.pdf lec2.pdf lec3-slides.pdf lec3.pdf lec4-slides.pdf ...lec6.pdf lec7.pdf lec8.pdf lec9.pdf lec10.pdf lec11.pdf

    lec.rar_LEC

    6. **划分风险等级**:根据LEC分值将危险源分为不同的风险等级,如低风险、中风险和高风险。 总的来说,"lec.rar_LEC"提供的工具是进行LEC风险评估的重要助手,它使用MATLAB语言编写,能够客观地计算和分析工作场所...

    MIT计算机图形学课程6.837课件

    Lec 00 Introduction and Course Overview Lec 01 Bezier Curves and Splines Assignment 0 Lec 02 Curves Properties and Conversion, Surface Representation Lec 03 Coordinates and Transformations Lec 04 ...

    EI338 计算机系统工程-Computer Systems Engineering-全套 PPT 课件

    EI338 计算机系统工程-Computer Systems Engineering-全套 PPT 课件 CA-lec1.pdf ...lec6-OS.pdf lec7-OS.pdf lec8-OS.pdf lec9-OS.pdf lec10-OS.pdf lec11-OS.pdf lec12-OS.pdf Study-Guide.pdf Summary.pdf

    lec-培训(完整版).pdf

    《LEC培训(完整版).pdf》是一份关于逻辑等效检查的详细教程,重点介绍了使用Conformal工具进行逻辑等效验证的方法和技术。Conformal是一款强大的逻辑等效检查工具,广泛应用于芯片设计的验证阶段,确保设计的逻辑...

    lec.rar_V2

    在Linux系统中,头文件是C语言编程的关键部分,它们允许程序员在源代码(如lec.c)中使用特定的函数和数据类型,而无需在每个文件中包含完整的实现。lec.c很可能是这个LAN Emulation客户端的实现文件,包含实际的...

    HOLLiAS-LEC G3 PLC选型手册.pdf

    由于提供的文件内容主要是一些网站链接、电子邮箱地址和数字的排列,没有提供实际的HOLLiAS-LEC G3 PLC选型手册的详细内容,我无法直接从中提取相关的知识点。然而,我可以根据HOLLiAS-LEC G3 PLC这个主题,根据一般...

    麻省理工matlab课件-MIT6_094IAP10_lec04.pdf

    麻省理工matlab课件-MIT6_094IAP10_lec04.pdf 本帖最后由 sunchy11 于 2012-2-8 15:46 编辑 分享个MIT的matlab 教程,属于初级入门,希望对大家有帮助哈。

    Week1—4_Note_Lec1—6.pdf

    Week1—4_Note_Lec1—6.pdf

    lec.zip_LEC _点名_点名系统_点名系统C_随机点名

    总结而言,“lec.zip_LEC _点名_点名系统_点名系统C_随机点名”提供的是一款基于C语言实现的随机点名系统,它集成了随机数生成和数据管理技术,为教学环境带来了便捷和公平。通过理解和掌握这样的系统,不仅可以提升...

    立华 LEC-3210 19’@2U嵌入式通讯管理机 产品介绍.pdf

    立华LEC-3210是一款19英寸标准2U机架式的嵌入式通讯管理机,针对电力自动化行业设计,具备无风扇和低功耗的特点。该设备基于Intel Atom D525双核处理器,搭载6个千兆以太网接口(GbE)、10/18个串行通信接口(COM)...

    demo_Lec.m

    demo_Lec.m

    Lec-1-SDLC.rar_LEC

    "Lec 1 SDLC.pptx"这个文件很可能包含了对SDLC和UML的详细介绍,涵盖了以上各个阶段的理论知识和实际应用案例。通过学习这个讲座材料,可以深入理解这两个概念如何在实际项目中协同工作,提升软件开发的效率和质量。...

    Lec1-Introduction.pdf.zip.zip

    Lec1-Introduction.pdf.zip

    安全风险源识别LEC评分.pdf

    安全风险源识别LEC评分.pdf

    麻省理工matlab课件-MIT6_094IAP10_lec05.pdf

    麻省理工matlab课件-MIT6_094IAP10_lec05.pdf 本帖最后由 sunchy11 于 2012-2-8 15:46 编辑 分享个MIT的matlab 教程,属于初级入门,希望对大家有帮助哈。

Global site tag (gtag.js) - Google Analytics