char* 与 char[] 的区别
"Hello world"作为静态字符串实际上存储在数据区,但写程序的人不知道这个地址,而程序本身知道。当某一函数以
{ char p[] = "Hello world"; ...}
方式使用此静态字符串时,实际上相当于:
char p[12];
strcpy(p, "Hello world");
....
p[12]是在栈里临时分配的。虽然p指向的内容是"Hello world", 但是这是复制品,不是原件。当函数结束,char p[]就被程序回收了,所以p[]的内容就不再是"Hello world"了。
但如果以char *p="Hello world"的方式使用,p指向的是静态字符串存储的位置,也就是说指向"Hello world"的原件,当然没有问题了。 如果想坚持用char p[]而不使用char *p, 有效方法必须是:
{
static char p[]="Hello world";
return p;
}
原因我想很清楚了。static char []是静态的,存储在数据区。
char* 与 char[] 的区别的更多相关文章
- char* 和char[]的区别
以下内容均来自互联网,系笔者汇总并总结. 1. 问题介绍 问题引入:在实习过程中发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="ab ...
- mysql中char与varchar的区别分析(补充一句,int和integer没区别)
转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...
- TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择 和 char varchar varchar2 的区别
TEXT.TINYTEXT.MEDIUMTEXT.LONGTEXT选择: 储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 - 1) 个字符. TEXT 最大长度是 6553 ...
- [转载]char * 和char []的区别---之第二篇
原文地址:http://blog.sina.com.cn/s/blog_74a4593801019keb.html main() { char *p="abc123ABC";//c ...
- [转载]char * 和char []的区别---之第一篇
char * 和char []的区别---之第一篇 原文地址http://blog.csdn.net/yahohi/article/details/7427724 在C/C++中,指针和数组在很多地 ...
- C语言中char* 和 char []区别
想要把丢掉的东西捡起来,还是很辛苦啊,今天我就发现,我连char* 和 char []的区别都不知道. 很多人觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正. 本质上 ...
- char varchar varchar2 的区别 (转)
char varchar varchar2 的区别 http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是 ...
- C/C++中char* 与char []定义的区别
转载请注明来自souldak,微博:@evagle Question: 给你一个字符串例如abb输出它包含的字符的所有可能排列. 例如abb输出3个:abb,bab,bba Answer: 假设我们自 ...
- char , unsigned char 和 signed char 区别
ANSI C 提供了3种字符类型,分别是char.signed char.unsigned char.char相当于signed char或者unsigned char,但是这取决于编译器!这三种字符 ...
- MYSQL—— char 与 varchar的区别!
一.char 和 varchar 的区别: 1)取值范围: char:取值范围:0~255 varchar:取值范围:0~65535 2)空间占用与速度: char: 定长字符串,占用空间大,速度快, ...
随机推荐
- Android 编程下代码之(QQ消息列表滑动删除)
这份代码写出来有些时候了,一直没共享,现在把它共享给大家.简单列一下代码中你可以学到的知识点: 自定义控件的实现方式: 事件的拦截分发消费机制: QQ会话列表滑动删除原理: 最后附上源码链接:Q ...
- MyBatis 问题列表
问题表现:The content of elements must consist of well-formed character data or markup 解决办法:1.配置的动态SQL语句里 ...
- css按钮固定
- [转]mybatis if test非空判断数字0为什么是false
原文地址:http://blog.51cto.com/wangguangshuo/1944531 今天工作中发现一个Long类型的参数没有传到sql中去,在sql xml配置文件中是使用if test ...
- [转] [Java] 知乎下巴第5集:使用HttpClient工具包和宽度爬虫
原文地址:http://blog.csdn.net/pleasecallmewhy/article/details/18010015 下载地址:https://code.csdn.net/wxg694 ...
- StreamingContext.getOrCreate
/** */ object AppRealTime { def main(args: Array[String]): Unit = { ) { println("please input a ...
- jsPatch.qq.com呵呵
jsPach.qq.comhtml, body {overflow-x: initial !important;}html { font-size: 14px; } body { margin: 0p ...
- C++生成全局唯一Guid
在软件开发中,我们经常需要一个唯一标识来标识一个对象,在PHP中,可以用UUID来获得全局唯一的ID,其实C++也内置了简单的GUID获得办法,猜想GUID应该是本机的特征以及运行的时间的一个哈希值, ...
- 使用taskset命令来限制进程的CPU
常常感觉系统资源不够用,一台机子上跑了不下3个比较重要的服务,但是每天我们还要在上面进行个备份压缩等处理,网络长时间传输,这在就很影响本就不够用的系统资源: 这个时候我们就可以把一些不太重要的比如co ...
- Linux sed命令替换文件文件内容
sed在Linux下是个强大的工具,这里主要说替换: 1.替换并输出(不修改源文件): sed 's/dog/cat/g' file ##dog被替换的内容,cat替换的内容 2.备份后直接替换至源文 ...