指针与数组
来源:互联网 发布:阿里云空间怎么样 编辑:程序博客网 时间:2024/06/03 15:36
总结:一个指针变量,用数组方式访问指针所指向的数值时,可以把数组下表的形式转化成指针的形式,转化完成后,如果地址有效,则用数组的方式访问指针所指向的数值是合法的。例如,
上述操作中p[0]可以转化成*p实际上就是对a赋值,p[1]可以转化成*(p 1)实际上对b赋值
(1)指针和数组的关系
{
char *string="i love china";
printf("%s \n",string);
printf("%c
}
输出结果;
由此可以看出指针和数组的密切关系。自己一定要多加理解,再深入研究和应用。
数组名和指针虽然在功能上相近,但还是有区别的,数组名和指针之间有一个不同之处。指针式一个变量所以可以进行赋值和自加自减的操作,语句p=a和
指针和数组之间的关系:
指针的基本思想是以地址代实物,以小管大,以简代繁,其本质是包含某个变量地址的一个变量。而数组名代表的是一个物理地址,数组下标是逻辑地址,从而决定了这两者之间有密切联系,主要有如下两点:
①任何可以由数组实现的*作也能由指针实现。这是因为指针和数组名都是地址,任一数组元素均可由指针表示。
②在使用形式上,指针的使用亦可采用数组的表示法,以获得好的可读性。指针的可读性要比指针要强。
指针与数组作为两种不同的数据类型,必然有其区别,主要有如下五点:
①数组具有静态特征,而指针有更多的动态特性和灵活性。数组一经定义,其基址和大小便固定了,在该数组的有效使用范围内是不可变的;但是指针则具有很强的动态特征,可以动态地指向任一该类型(定义决定)变量,这也就决定了它有更大的灵活性。
②指针是变量,可以被赋值,数组名不是变量,不可以被赋值。
③指针作为地址可以参加一些地址运算,如加法、减法,在特定的环境下(如两指针指向同一数组中的元素)还可进行比较运算,但不同的数组名之间则一般不进行比较运算。
④运算速度上的差异。一般来说,用指针要快些,因为在实际的运算中,总是把数组下标表示通过存储映象函数转换为指针表示,按其地址访问内存,这种转换要进行乘法和加法的运算。
⑤数组具有较好的可读性,指针具有更强的灵活性。一般,对某些多维数组中非连续的元素的随机访问用下标表示比较方便,当按递增(减)顺序访问数组时,使用指针快捷而且方便。
(二)指针与一维数组
- 指针:指针与数组
- 指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 数组指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组与数组指针
- 指针数组 与数组指针
- 指针数组与数组指针
- 数组指针与指针数组
- 指针数组与数组指针
- 指针数组与数组指针
- 项目从tomcat迁移到weblogic环境下问题汇总----不断补充中ing...
- jQuery包装集
- ModSecurity and ModSecurity Core Rule Set Multipart Bypasses
- SAP项目中开发用到的BAPI
- 实战解决问题开发出功能固然重要--->基本功锤炼和技术的实现原理,也非常重要
- 指针与数组
- 【Swing基础】setPreferredSize和setSize的区别及用法
- winform多个panel在设计时编辑的问题
- java设计模式一(单例模式singleton)
- java网络编程--解析通过web.xml文件控制利用过滤器实现编码格式步骤
- UML中Include与Extend的关系
- ios合并模拟器和真机静态库
- IOS面试题之一些概念的区别
- 转:使用matlab绘画柱状图,且使用不同的图案填充