c++指针和数组的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013230291/article/details/82687369

总结下指针和数组的区别:
以字符数组为例简单说明下数组与指针之间的区别:
1. char a[3];
2. char *b=new char[size];
3. const char *c;
4. string d;
相同点:a,b,c,d都表示的是地址;
不同点:
(1). a[3]只能放三个字符数据,*b则不受大小限制,可以存放许多字符变量,大小根据size的大小确定;
(2). b在定义时一定要分配内存空间,否则程序会产生未知错误,因为计算机不知道该指针指向哪儿,如果指向了一个正在运行的程序,程序就是崩掉;
(3) *c也不受大小限制,与*b的区别是b的值能改变,可以指向其他字符地址,但c的地址不能改变,因为是常指针变量。
(4) d也不受大小限制,而且可以根据字符个数的多少来动态的分配内存空间;
(5). b 和c 的区别是b 能通过指针变量所指向地址的变化来改变其变量的值,但c不能。

猜你喜欢

转载自blog.csdn.net/u013230291/article/details/82687369