`
kmplayer
  • 浏览: 508927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第四章 数组和指针并不相同

 
阅读更多
1,先看一个常见的错误:
file1:
int mango[100];  //定义mango为一个数组.
file2:
extern int* mango; //声明mango为一个指针.

基于错误的认识"数组定义等同于指针的外部声明"
正确:
file2:
extern int mango[];

2,地址(左值)和地址的内容(右值)之间的区别
x=y
(1)x的含义是x代表的地址;被称为左值;左值在编译时可知,表示存储结果的地方.
(2)y的含义是y代表的地址的内容;被称为右值;右值直到运行时才知道.
注:关键之处在于每个符号的地址编译时可知,如果编译器需要一个地址可直接进行操作.
extern char a[]和extern char a[100]等价.
这两个声明都提示a是一个内存地址,数组内的地址可从这个地方找到,编译器并不需要知道数组共有多长.

3,char a[9]="abcedfgh";
访问a[i]
(1)编译器符号表具有一个地址9980
(2)取i的值,将它与9980相加.
(3)取地址(9980+i)的内容.

4,char* p="abcedfgh";
访问p[i]
(1)编译器符号表具有一个p,地址为4624
(2)取地址4624的内容:5081
(3)取i的值,将它与5081相加.
(3)取地址(5081+i)的内容.

5,char* p="abcedfgh";字符串常量被定义为只读,不能修改.
char a[9]="abcedfgh";由字符串常量初始化的数组时可以修改的.
分享到:
评论

相关推荐

    C++第4章_数组与指针(C++课件,中南大学)

    在第四章“数组与指针”中,我们首先了解了数组及其简单应用。数组是一种数据结构,允许程序员存储一组具有相同类型的值。在C++中,数组的定义通常包括类型、数组名和数组的大小。例如,`int a[10];`定义了一个包含...

    数组与指针区别(很全面)

    本文旨在澄清关于数组名是否等同于指针这一常见的误区,并通过具体的代码示例来深入探讨数组和指针之间的关系及其差异。 #### 二、数组与指针的基本概念 1. **数组**: - 数组是一系列相同类型的数据项的集合。 ...

    C语言程序设计第4章数组和指针

    在第四章“数组和指针”中,我们主要探讨了以下几个知识点: 1. **数组的概念**: 数组是一组相同类型的变量,它们按照下标顺序存储在连续的内存空间里。数组通过一个唯一的标识符(数组名)来表示,数组名加上...

    第四章 数组、指针与引用(计算机等级考试二级C++).pdf

    在C++二级教程中,数组、指针和引用是三个非常重要的概念,对于计算机等级考试二级C++来说,掌握这些知识点是必不可少的。 首先,数组是由一系列具有相同数据类型的数据元素所构成的集合,这些元素按照一定的顺序...

    第5章 数组和指针3.docx

    本章主要讲解了数组和指针的基础知识及其应用。 数组是存储同类型数据集合的数据结构,分为一维数组和二维数组。一维数组可以视为线性的数据序列,而二维数组则可以理解为表格形式的数据。在定义数组时,需要指定...

    第5章 数组和指针3.pdf

    通过上述例题,我们可以看到,理解数组和指针的概念并熟练运用它们是解决实际问题的关键。例如,例题4强调了数组长度必须足够容纳所有元素,包括字符串的结束符。例题5展示了如何使用`strcpy()`函数复制字符串。而在...

    VC++-第4章-数组与指针ppt课件.ppt

    "VC++数组与指针ppt课件" 本资源是关于VC++数组与指针的ppt课件,涵盖...本资源涵盖了数组和指针的基本概念、定义、使用方法和实际应用,旨在帮助学习者快速掌握VC++数组和指针的使用方法,并在实际应用中发挥其优势。

    C++数组与指针深入剖析

    `来定义一个指向数组第一个元素的指针,并通过`*p`访问该元素。 3. **数组与指针之间的转换**: 在某些上下文中,数组名会被隐式转换为指向数组第一个元素的指针。例如,在函数调用中传递数组时,实际上是传递了一...

    C++之数组与指针的异同 pdf

    5. **语法糖**:在很多情况下,C++允许将数组名和指针进行相似的操作,例如解引用和递增操作,但这仅仅是语法上的便利,并不代表它们是相同的。 ### 示例代码解析 在提供的示例代码中,作者通过几个简单的例子展示...

    C语言数组和指针

    // q指向数组a的第四个元素 ``` **指针与数组名的区别:** 虽然数组名可以被视为指向数组第一个元素的指针,但两者之间还是存在区别的。例如: - 数组名是一个常量表达式,不能被赋值或修改。 - 数组名不支持指针...

    数组和指针使用及区别详解

    在编程中,数组和指针是两种非常基础且重要的概念,它们在处理数据时起着核心作用。数组是一组相同类型的元素的集合,通过索引来访问每个元素。指针则是一个变量,它存储的是内存地址,这个地址通常指向一个变量或...

    c语言中 数组名和指针的区别

    尽管在某些情境下,数组名可以像指针那样被使用,例如在传递给函数时,但实际上数组名并不等同于指针。数组名本质上是一个固定的内存地址,指向数组的第一个元素,而这个地址在整个数组的生命周期中是不变的。另一...

    数组与指针详解

    数组和指针是C/C++编程语言中的两个核心概念,它们在程序设计中扮演着至关重要的角色。数组是一组相同类型的元素集合,而指针则是存储内存地址的变量,可以用来间接访问这些元素。理解它们之间的关系对于编写高效且...

    二维数组与指针关系剖析

    因此,对于二维数组,我们可以获得其首元素的一维数组指针,这是一维数组指针的指针,也称为二级指针。 二维数组的声明通常如下所示: ```cpp int arr[3][4]; ``` 这个声明创建了一个3行4列的二维数组。数组`arr`...

    第6章数组指针与字符串.

    本章主要讨论了数组、指针以及字符串的基本概念和使用方法。 数组是存储相同类型元素的集合,可以通过索引来访问每个元素。例如,数组A[10][5][15]是一个三维数组,它有10个元素,每个元素本身又是一个含有5个元素...

    指针数组与数组指针与二级指针

    通过理解指针数组、数组指针和二级指针,我们可以更灵活地操控内存,提高代码的效率和灵活性。这些概念对于理解C语言的底层机制和编写高效程序至关重要。在实际编程中,要特别注意指针的生命周期管理,避免内存泄漏...

    指针数组与数组指针

    ### 指针数组与数组指针的概念及区别 在计算机编程中,特别是C语言及其衍生语言中,指针是一个非常重要的概念。它允许程序员直接访问内存地址,并对其进行操作。当我们深入探讨指针时,会遇到两个看似相似但实际上...

    C语言经典指针与数组ppt

    - **指针的声明和使用**:例如,`int *p`声明了一个指向整数的指针,`p = &a[0]`将指针`p`指向数组`a`的第一个元素。指针可以通过解引用操作符`*`来访问其所指向的值。 - **多级指针**:指针可以指向指针,形成...

Global site tag (gtag.js) - Google Analytics