c语言字符数组指针数组,c语言字符数组指针的使用

dfnjsfkhak 13 0

大家好,今天小编关注到一个比较意思的话题,就是关于c语言字符数组指针数组的问题,于是小编就整理了2个c语言字符数组指针数组的解答,让我们一起看看吧。

  1. C/C++关于指向指针的指针为什么可以用数组表示?
  2. 指针参数与数组参数的关系?

C/C++关于指向指针的指针为什么可以用数组表示

因为数组名就是指针常量,所有语法都是一样的 inta[10]; int*p=a; a[0]=12; p[1]=34; *(a+2)=56; *(p+3)=78; 唯一的区别是,定义数组同时会分配内存,指针使用前要赋值

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

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

c语言字符数组指针数组,c语言字符数组指针的使用-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

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

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

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

c语言字符数组指针数组,c语言字符数组指针的使用-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

所以:

char a[] = "hello world";

char *p = a;

c语言字符数组指针数组,c语言字符数组指针的使用-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

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

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

void Func(char a[100])

到此,以上就是小编对于c语言字符数组指针数组的问题就介绍到这了,希望介绍关于c语言字符数组指针数组的2点解答对大家有用

标签: 数组 指针 参数