社区
C语言
帖子详情
c语言:字符串不同的声明方式存储方式有什么不同?
无无无无无无无无
2013-05-07 10:40:45
字符串不同的声明方式存储方式有什么不同?
char *p = "hello";
char p[] = "hello";
char *p = malloc(10);
他们的存储方式有什么不同;
用 vc6 打印地址发现地址的偏差还是蛮大的,说明他们在进程空间的位置不同。
malloc 出来的应该是在堆中无法否认,char p[] 应该是函数栈中,那 char *p = "hello"; 是存储在哪里的?
...全文
240
8
打赏
收藏
c语言:字符串不同的声明方式存储方式有什么不同?
字符串不同的声明方式存储方式有什么不同? char *p = "hello"; char p[] = "hello"; char *p = malloc(10); 他们的存储方式有什么不同; 用 vc6 打印地址发现地址的偏差还是蛮大的,说明他们在进程空间的位置不同。 malloc 出来的应该是在堆中无法否认,char p[] 应该是函数栈中,那 char *p = "hello"; 是存储在哪里的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
承诺别再提
2013-05-10
打赏
举报
回复
char *p = "hello"; char p[] = "hello"; char *p = malloc(10) 第一个是存储在只读常量区的,是字面值,是只读的。 第二个如果是全局数组,则也是在全局常量区,是可修改的;如果是局部数组,则是在堆栈。 第三个是存在堆里的。
就是那个党伟
2013-05-07
打赏
举报
回复
楼上正解,p指向"hello"的首地址,而"hello"存在于全局静态区内,const
善良超锅锅
2013-05-07
打赏
举报
回复
char *p = "hello"; "hello"存储在全局静态区。当你这么声明的时候,会在全局静态区开辟片内存用来存储hello\0 会自动在hello的后面加一个结束符。 因为是静态区,不允许改变存储的内容。
liangeek
2013-05-07
打赏
举报
回复
char *p = "hello"; "hello"为字符串常量,p指向它的首地址。你不能修改字符串的内容。 char p[]="hello"; 是字符数组,你可以修改内容。
starytx
2013-05-07
打赏
举报
回复
1和3都是定义了一个字符指针,1是让这个字符指针指向一个常量字符串的字一个字符'h'的地址;3是让这个指针指向malloc开辟的10个字节的空间的首地址。 2 定义了一个字符数组,数组的内容是"hello"最后还有一个隐含的结束符'\0',数组的大小是5+1 = 6,。 3 是动态开辟的空间,需要free(p)来进行释放,否则会有内存泄露
sundq12
2013-05-07
打赏
举报
回复
那 char *p = "hello"; 是存储在哪里的?//存储在静态数据区种,为常量,不可改变。
AnYidan
2013-05-07
打赏
举报
回复
引用 1 楼 sundq12 的回复:
那 char *p = "hello"; 是存储在哪里的?//存储在静态数据区种,为常量,不可改变。
++
赵4老师
2013-05-07
打赏
举报
回复
提问和讨论之前请先学会使用恰当的工具软件
观察
! VMMap 是进程虚拟和物理内存分析实用工具。
http://technet.microsoft.com/zh-cn/sysinternals/dd535533
C语言
:从放弃到入门
C语言
基础入门到进阶教程,共16天,每天6节课,每节40分钟课堂实录,带你征服
C语言
,让所有学过和没有学过
C语言
的人,或是正准备学习
C语言
的人,找到学习
C语言
的不二法门。该课程涵盖
C语言
所有知识点,并且结合大量的案例,让人一听便懂。
C语言
:
字符串
数组与
字符串
指针数组【转】
原创
C语言
:
字符串
数组与
字符串
指针数组 ...
C语言
:定义
字符串
的几种
方式
#include <stdio.h> #include <stdlib.h> int main() { //定义
字符串
的几种
方式
//
字符串
和字符数组的区别:最后一位是否是空字符 char names1[] = {'j', 'a', 'c', 'k', '\0'}; char names2[50] = "jack"; char * ...
C语言
:
字符串
-1
字符串
是一个或多个字符的序列。在 C 语言中没有专门用于
存储
字符串
的变量类型,
字符串
被
存储
在 char 类型的数组中。数组由连续的
存储
单元组成,
字符串
中的字符被
存储
在相邻的
存储
单元中,每个单元
存储
一个字符。如下图: 注意:数组末尾的字符 '\0' 是空字符( null character) ,在 C 语言中它标记
字符串
的结束。空字符不是 0 ,它是非打印字符,其 ASCII 码值是 (或等...
在
C语言
中如何处理
字符串
,
C语言
中
字符串
的处理
方式
《
C语言
中
字符串
的处理
方式
》由会员分享,可在线阅读,更多相关《
C语言
中
字符串
的处理
方式
(4页珍藏版)》请在人人文库网上搜索。1、
C语言
中
字符串
的处理
方式
“很难从
字符串
中找到感觉,但它们却是我们能指望的唯一交流纽带”-
C语言
程序设计 现代方法写多了 Java 代码,对 String 类 很是喜爱,可惜经典的 C 语言没有。最近在做程序过程中,发现对
C语言
字符串
的处理很模糊,一会儿用数组,一会儿用指针...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章