C++数组与指针的区别以及数组指针/指针数组实例介绍
来源:互联网 发布:excel数据统计图表 编辑:程序博客网 时间:2024/06/07 01:37
1.数组与指针的区别
C++/C程序中,指针和数组在不少地方可以相互替换着用,但两者是有区别的:数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,可以改变的只有数组的内容。
指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。
注意两者在修改内容时的不同:假设字符数组a的容量是6个字符,其内容为hello\0。a的内容可以改变,如a[0]= ‘X’。指针p指向常量字符串“world”(位于静态存储区,内容为world\0),常量字符串的内容是不可以被修改的。如果使用:p[0]='X',从语法上看,编译器并不觉得语句p[0]= ‘X’有什么不妥,但是该语句企图修改常量字符串的内容而导致运行错误。
2.指针数组和数组指针?
指针数组:指针数组可以说成是”指针的数组”,首先这个变量是一个数组,其次,”指针”修饰这个数组,意思是说这个数组的所有元素都是指针类型,在32位系统中,指针占四个字节。
int* a[4] 指针数组 表示:数组a中的元素都为int型指针 元素表示:*a[i]和*(a[i])是一样的,因为[]优先级高于*
#include <iostream>using namespace std;int main(){ int v[2][3] = {{1, 2, 3}, {4, 5, 6}}; int* pv[2]; for (int i = 0; i < 2; ++i) pv[i] = v[i];for(int i=0;i<2;i++){for(int j=0;j<3;j++){cout<<*(pv[i]+j)<<" ";} cout<<endl;}}数组指针:数组指针可以说成是”数组的指针”,首先这个变量是一个指针,其次,”数组”修饰这个指针,意思是说这个指针存放着一个数组的首地址,或者说这个指针指向一个数组的首地址。
#include <iostream>using namespace std;int main(){ int v[2][3] = {{1, 2, 3}, {4, 5, 6}}; int (*a)[3] = v; //指向第1行的指针for(int i=0;i<2;i++){for(int j=0;j<3;j++){cout<<*(a[i]+j)<<" ";} cout<<endl;}}
参考:
http://blog.chinaunix.net/uid-23544029-id-311366.html
http://blog.csdn.net/men_wen/article/details/52694069
http://blog.csdn.net/touch_2011/article/details/6966980
http://www.cnblogs.com/kaituorensheng/p/3722570.html
http://www.cnblogs.com/Romi/archive/2012/01/10/2317898.html
- C++数组与指针的区别以及数组指针/指针数组实例介绍
- 【指针篇】C语言:指针与数组的区别,数组指针与指针数组的剖析。
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 指针数组与数组指针的区别
- 指针数组与数组指针的区别
- 指针数组与数组指针的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 指针数组与数组指针的区别
- 数组指针与指针数组的区别
- 数组指针与指针数组的区别
- 指针数组与数组指针的区别
- mysql 排序之后添加 序列号 以及查询
- Android混淆步骤,混淆结果查看以及混淆后出现的问题和衍生问题
- Spring学习心得(17)-- 切入点表达式
- 双二阶滤波器
- CodeForces 777B Game of Credit Cards【贪心】
- C++数组与指针的区别以及数组指针/指针数组实例介绍
- swift 3.0 GCD使用
- poj 3928树状数组
- POPWindow的使用技巧盲点
- [转]解决每次从cmd进入sqlplus,都得重新设置pagesize、linesize的问题
- 链表简单创建查找
- 浅谈ORACLE AWR single instance 一
- c/c++ union
- Day005: linked list cycle