标题:字符串常量在内存中的存储++求高手解答
只看楼主
Lgothic
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2011-11-5
结帖率:0
已结贴  问题点数:10 回复次数:2 
字符串常量在内存中的存储++求高手解答
#include<stdio.h>
#include<string.h>
#include<conio.h>
int main()
{
    char *a="ab";
    char *b="ab";
   
    printf("%p  %p",a,b);

    _getch();
    return 0;
}
输出为:
00865744  00865744


1,a和b的值是一样的,是不是可以说a的“ab”和b的“ab”是同一个?
2,如果一样的话那么int a=8;int b=8; 中的两个8也是同一个吗?
求高手解答... (我是用vs2010编译的!!!)


搜索更多相关主题的帖子: 内存 include return 字符串 
2011-11-16 14:41
爱的轩辕氏
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:71
专家分:157
注 册:2011-5-8
得分:5 
   第一个肯定是一样的,a和b是指针,指向的内容相同,地址一样,都是ab、
   第二个 不是,8是给a b初始化的,在内存中分配空间,
2011-11-16 14:56
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:5 
char *a = "ab";  字符串"ab"存放在常量区, 指针a在栈上,a的值等于字符串"ab"放在内存里的地址。
而char a[] = "ab"; 把字符串拷贝到数组a里 数组a是在栈上

总有那身价贱的人给作业贴回复完整的代码
2011-11-16 18:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355391-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.271957 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved