美文网首页
字符数组和字符指针的区别

字符数组和字符指针的区别

作者: 冰吉凌 | 来源:发表于2015-04-19 14:00 被阅读65次

c++中:

char arry[ ]="hello world";在栈上分配一个局部数组。

char *ptr =“hello world”;在全局空间分配一个全局数组。

二者异同:

(i)“hello world!”都是占用13个字节(其中最后一个为空字符结束标志);

(ii) ptr是一个char *类型的变量,占用4个字节;arry是一个char[13]类型的变量,占用13个字节;

(iii)cout<< ptr<<endl; 输出hello world!

cout<<*ptr<<endl;输出h;

cout<<arry<<endl;输出hello world!

cout<<*arry<<endl;输出h;

(iv)数组形参,不能以值传递的方式传递数组,可以写成类似数组的形式

void print(const int *);

void print(const int [ ]);

void print(const int [10]);//维度表示期待的元素个数,实际不一定;

即:数组作为参数传递个函数时传递的是指针而不是数组,传递的是数组的首地址。

(v)分配内存空间不同

ptr是分配一个全局数组,全局数组是全局变量,对应内存中的全局区域,保存在普通数据段(静态存储区);

arry是分配一个局部数组,局部数组是局部变量,对应的是内存中的栈。

相关文章

  • 11.1 字符串和指针

    关于指针输出字符串 将字符串看作指针 使用指针表示法创建字符串 数组和指针的区别、数组名heart 是常量,指针名...

  • 【C语言笔记】<十六>指针和字符串

    通过数组保存字符串和通过指针保存字符串的区别 注意点

  • 字符数组和字符指针的区别

    c++中: char arry[ ]="hello world";在栈上分配一个局部数组。 char *ptr =...

  • C语言 - 字符串和指针

    字符串和指针 用数组实现的字符串和用指针实现的字符串 根据上例: 用数组实现的字符串str str是char[4]...

  • 结构体

    字符串数组的方式 字符串指针的形式 区别 字符串数组由于预先已经分配内存红箭 所以可以直接赋值:通过strcop(...

  • C 指针区分

    看下如下各种的区别: 数组指针例子: 指针数组: 查找字符串的例子: 数组名字相当于指针: 函数指针: 回调小例子:

  • C(字符串处理)字符指针、字符数组用法大总结

    字符指针变量和字符数组都可以处理字符、字符串,但是两者却有着本质的区别。今天用到就把所有的总结一下,以供大家参考!...

  • 第09天C语言(00):笔记总结

    01-指针和数组(新) 02-指针和字符串 03-指针和字符串-注意点 04-指针数组 05-指针变量作用 06-...

  • 7.C语言-指针

    1. 二维数组 2.字符指针变量和字符数组 3. 有关指针的数据类型的小结 4. void指针

  • 指针与字符串

    1.字符串定义的两种方式 字符数组 字符串指针指向字符串 2.两种定义字符串的区别 如果通过数组保存一个字符串,那...

网友评论

      本文标题:字符数组和字符指针的区别

      本文链接:https://www.haomeiwen.com/subject/nbygxttx.html