全站数据
8 4 2 0 5 8 1

指针参数与数组参数的关系

自考零距离 | 简单学习,快乐成才!         
问题更新日期:2024-10-22 05:18:00

问题描述

指针参数与数组参数的关系求高手给解答
精选答案
最佳答案

C++/C程序中,指针和数组在不少地方可以相互替换着用,让人产生一种错觉,以为两者是等价的。

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。

指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。

当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

所以:

char a[] =

"hello world

";

char *p= a;

cout<< sizeof(a) << endl; // 12字节

cout<< sizeof(p) << endl; // 4字节

void Func(char a[100])

{

cout<< sizeof(a) << endl; // 4字节而不是100字节

}