第十章 数组和指针(数组和指针的关系,指针操作)总结 140518
2014-05-18 23:34
567 查看
数组和指针的关系:
数组标记实际上就是指针的另外的形式。在前一章我们已经知道指针的概念(其数值为地址的变量)。数组名同时 也是该数组首元素的地址,如果flizny 是一个数组那么就有flizny == &flizny [0](&是取的变量的地址),既然fliznyt 和 & flizny [0]都代表首元素的内存地址,只要是地址就可以赋值给指针变量。而要取的址址的值就要用到*运算符 如fiizny
[1] == *(flizny + 1); //相同的值 & flizny [1] == flizny + 2; //有相同的地址 只有在函数原型和函数定义场合 才可用int *flizny 代替int flizny [] 。另外 说一下指针加1它结果 是对该指针增加1个存储单元(指针的值加上它 指向的对象的字节大小),这就说明了为什么在声明指针时要
声明 它所指上对象的数据类型对于数组则是增 加到下一个元素的 地址。自己总结就是:数组名可以直接赋值给指针
指针操作:
赋值:可以把一个地址赋给指针。通常使用数组名和地址运算符&来进行地址赋值,注意地址赋给指针时其数据类 型要相同
求值或取值 :运算符*可取出指针指向地址中存储的数值。
取指针地址:指针变量同其他变量一样具有地址和数值,使用运算符&可以得到存储指针本身的地址。
将一个整数加给指针:可以使用运算符+来把一个整数加给一个指针 过程是这个整数和指针所指的类型的字节相 乘,然后所得的结果会加到初始地址上。(要记住地址一般是以16进制)
增加指针的值:可以通过一般的加法或增量运算符来增加一个指针的值,这样作可以让指针指向下一个元素。
从指针中减去一个整数:同整数加给指针差不多只用的运算符不同,一个用加,一个用减。运算过程也差不。
减小指针的值:同加指值差不多,只是用的运算符不同。
求差值:通常对分别指向同一个数组内两个元素的指针求值以求元素之间的距离。差值的单位是相应类型的大小
比较:可以使用关系运算符来比较两个指针的值。前提是两个指针具有相同的类型。
注意:
计算机并不检查指针是否仍然指向某个数组元素。C只保证指向数组元素的指针和指向数组后的第一个地址的指 针有效。但数组后的第一个地址的值结果是未知。使用指针是不能对一个未初始化的指针取值。因为当创建一个 指针 时,系统只分配用来存储指针本身的内存空间,并不分配用来存储数据的内存空间。
另个说个题外话:我也有可能会对前面的blog加一些新的东西进去。今天 更新了第九章01的blog。
数组标记实际上就是指针的另外的形式。在前一章我们已经知道指针的概念(其数值为地址的变量)。数组名同时 也是该数组首元素的地址,如果flizny 是一个数组那么就有flizny == &flizny [0](&是取的变量的地址),既然fliznyt 和 & flizny [0]都代表首元素的内存地址,只要是地址就可以赋值给指针变量。而要取的址址的值就要用到*运算符 如fiizny
[1] == *(flizny + 1); //相同的值 & flizny [1] == flizny + 2; //有相同的地址 只有在函数原型和函数定义场合 才可用int *flizny 代替int flizny [] 。另外 说一下指针加1它结果 是对该指针增加1个存储单元(指针的值加上它 指向的对象的字节大小),这就说明了为什么在声明指针时要
声明 它所指上对象的数据类型对于数组则是增 加到下一个元素的 地址。自己总结就是:数组名可以直接赋值给指针
指针操作:
赋值:可以把一个地址赋给指针。通常使用数组名和地址运算符&来进行地址赋值,注意地址赋给指针时其数据类 型要相同
求值或取值 :运算符*可取出指针指向地址中存储的数值。
取指针地址:指针变量同其他变量一样具有地址和数值,使用运算符&可以得到存储指针本身的地址。
将一个整数加给指针:可以使用运算符+来把一个整数加给一个指针 过程是这个整数和指针所指的类型的字节相 乘,然后所得的结果会加到初始地址上。(要记住地址一般是以16进制)
增加指针的值:可以通过一般的加法或增量运算符来增加一个指针的值,这样作可以让指针指向下一个元素。
从指针中减去一个整数:同整数加给指针差不多只用的运算符不同,一个用加,一个用减。运算过程也差不。
减小指针的值:同加指值差不多,只是用的运算符不同。
求差值:通常对分别指向同一个数组内两个元素的指针求值以求元素之间的距离。差值的单位是相应类型的大小
比较:可以使用关系运算符来比较两个指针的值。前提是两个指针具有相同的类型。
注意:
计算机并不检查指针是否仍然指向某个数组元素。C只保证指向数组元素的指针和指向数组后的第一个地址的指 针有效。但数组后的第一个地址的值结果是未知。使用指针是不能对一个未初始化的指针取值。因为当创建一个 指针 时,系统只分配用来存储指针本身的内存空间,并不分配用来存储数据的内存空间。
另个说个题外话:我也有可能会对前面的blog加一些新的东西进去。今天 更新了第九章01的blog。
相关文章推荐
- c 多维数组 指针关系总结
- 第十章 数组和指针(函数和二维数组,本章个人总结)总结 140520
- 指针操作数组的两种方法(总结)
- 第十章 数组和指针(关键字const,指针分析数组属性)总结 140519
- C++中一维数组与指针的关系详细总结
- 第十章 数组和指针(复习题总结)总结 140521 22 23
- 字符串、字符数组、数组、指针关系总结
- 第十章 数组和指针(数组及数组初始化)总结 140517
- 字符数组,字符指针,Sizeof总结
- 数组和指针可交换性总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
- 浅议C语言中数组和指针的互操作
- 指针和数组关系初探
- 字符数组,字符指针,Sizeof总结
- 理清C语言中指针与数组的关系(一、二)
- 数组和指针的关系
- 指针与数组关系浅议
- C++中使用基类指针操作子类数组的分析
- C中数组与指针的关系小结