char arr[] 和 char *arr区别
来源:互联网 发布:赫苏斯 数据 编辑:程序博客网 时间:2024/05/29 02:27
char arr[] = "hello world";//arr为数组的名称,数组中的内容在栈中,离开数组所在的作用域,所占用的空间就被释放。char *arr = "hello world";//arr为指针,arr占用的内存为栈中的内存,但其指向的内存在静态存储区,静态存储区的空间在程序结束的时候,才被释放。下面是一个小的程序,GetString01() 和GetString02()函数。GetString01()函数,当返回数组的名称时,数组的内容就被释放了。GetString02()函数,当返回指针时,指针所指的内容没有被释放。所以,GetString02()函数可以正确的返回内容,GetString01()返回的是乱码。
#include<iostream>#include<string>using namespace std;char * GetString01(){char arr[] = "hello world";return arr;}char * GetString02(){char *arr = "hello world";return arr;}int main(){char *p = GetString01();cout<<p<<endl;char *q = GetString02();cout<<q<<endl;system("pause"); return 0;}
结果的截图如下:
0 0
- char arr[] 和 char *arr区别
- char arr[]和extern char*
- char arr[] 和string str
- C/C++ char* arr与char arr[]的区别(反汇编解析)
- [arr firstObject] 和 arr[0] 的区别
- char[] arr = original.ToCharArray(); Array.Reverse(arr);
- 关于char* arr="hello world"与char arr[]="hello world"
- .arr
- arr
- Arr
- “var arr = []; ”和 “var arr = {};” 的区别
- char arr[32]数组不满,求里面非空值个数
- android arr和jar的区别
- char *和char [] 区别
- char *和char []区别
- char*和char[]区别
- arr和jar
- $xx=$arr[0]和$xx=$arr["0"]的区别
- 图像和视频压缩
- Android底层驱动开发(一)
- android 上传文件
- 选择排序
- 对HTML5至关重要的10个Javascript资源
- char arr[] 和 char *arr区别
- 一步一步教你做ios推送
- 关于socket.recv()阻赛问题
- 《Java编程思想》学习笔记1——面向对象和JVM基础
- makefile中的patsubst
- thrift2访问hbase
- 双系统(ubuntu、windows), 删除 ubuntu 分区,进不去 windows 解决办法
- BucketSort的java实现
- 关于goole IO大会发布的android M和android studio1.3的更新