`
kmplayer
  • 浏览: 497028 次
  • 性别: 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";由字符串常量初始化的数组时可以修改的.
分享到:
评论

相关推荐

    指针数组和数组指针的区别.doc

    //该语句是定义一个数组指针,指向含4个元素的一维数组。 p=a; //将该二维数组的首地址赋给p,也就是a[0]或&a[0][0] p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][] 所以数组指针也称指向一维...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar

    810.3 数组指针和指向数组的指针变量 141 10.3.1 指向数组元素的指针 142 10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针变量 148 10.4 字符串的指针指向字符串的针...

    你必须知道的495个C语言问题

    事实上,能够确保的只有如下几点: …… 目录第1章 声明和初始化 第2章 结构、联合和枚举第3章 表达式第4章 指针第5章 空指针第6章 数组和指针第7章 内存分配 第8章 字符和字符串 第9章 布尔表达式和...

    谭浩强C语言程序设计,C++程序设计,严蔚敏数据结构,高一凡数据结构算法分析与实现.rar )

    810.3 数组指针和指向数组的指针变量 141 10.3.1 指向数组元素的指针 142 10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针变量 148 10.4 字符串的指针指向字符串的针...

    你必须知道的495个C语言问题.pdf

    第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配一些空间,但却不行。这些代码有什么问题呢?char *p; *p =malloc(10); 4.3 *p++自增p还是p所指向的变量? 指针操作 4.4 我用...

    程序员面试宝典-第三版(高清带目录)

     第4章 职业生涯发展规划  4.1 缺乏工作经验的应届毕业生  4.2 更换工作的程序员们  4.3 快乐的工作 第2部分 C/C 程序设计  第5章 程序设计基本概念  5.1 赋值语句  5.2 i  5.3 编程风格  5.4 类型转换  ...

    C++初学者指南(原版)

    第 4 章:数组、字符串和指针 此模块讨论数组、字符串和指针。数组是变量的集合,这些变量具有相同的类型,由一个公用名引用。数组为创建相关变量的列表提供了一种便利方法。C++ 语言不定义内置字符串数据类型。相反...

    正宗《Visual C++2008入门经典》中文 高清完整版PDF part5(共6部分)

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    正宗《Visual C++2008入门经典》中文版part4 pdf

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    正宗《Visual C++2008入门经典》中文版part1 pdf

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    正宗《Visual C++2008入门经典》中文版part3 pdf

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    正宗《Visual C++2008入门经典》中文版part2 pdf

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    正宗《Visual C++2008入门经典》中文版part6 pdf

    第4章 数组、字符串和指针 第5章 程序结构(1) 第6章 程序结构(2) 第7章 自定义数据类型 第8章 深入理解类 第9章 类继承和虚函数 第10章 标准模板库 第11章 调试技术 第12章 Windows编程的概念 第13章 ...

    明解C语言(第3版)入门篇.[日]柴田望洋(带详细书签).pdf 【半高清】

    第4章 程序的循环控制 77 4-1 do语句 78 do语句 78 复合语句(程序块)中的声明 79 读取一定范围内的值 80 逻辑非运算符·德摩根定律 81 德摩根定律 81 求多个整数的和及平均值 82 复合赋值运算符 84 后置...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    第4章 控制流 4.1 关系操作符、相等操作符和逻辑操作符 4.2 关系操作符和表达式 4.3 相等操作符和表达式 4.4 逻辑操作符和表达式 4.5 复合语句 4.6 表达式和空语句 4.7 if和if-else语句 4.8 while语句 4.9 for语句 ...

    C++ Primer第四版【中文高清扫描版】.pdf

    第4章 数组和指针 95 4.1 数组 96 4.1.1 数组的定义和初始化 96 4.1.2 数组操作 99 4.2 指针的引入 100 4.2.1 什么是指针 100 4.2.2 指针的定义和初始化 101 4.2.3 指针操作 104 4.2.4 使用指针访问数组元素 106 ...

Global site tag (gtag.js) - Google Analytics