标题:字符数组与指针的一个疑惑?求解!
只看楼主
cheenbee
Rank: 2
等 级:论坛游民
帖 子:53
专家分:32
注 册:2011-11-3
结帖率:100%
已结贴  问题点数:5 回复次数:2 
字符数组与指针的一个疑惑?求解!
#include<stdio.h>
int main(){
    char *string;
    string="I love China!";
    printf("%s\n%d\n",string,sizeof(string));

    return 0;
}

第四行代码是把"I love China!"中的第一个字符地址赋给指针变量string   可是我不明白这行代码的原理是什么,不应该取址才能得到一个变量的地址吗?新手求解!
搜索更多相关主题的帖子: return China 
2011-11-17 20:36
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
得分:3 
这个是字符串和指针的问题,书上找相关的章节看看就知道了

I love China!  这个是一个字符串常量。在内存中存放的时候是有内存地址的,而把这个常量的第一个元素的地址赋给了string这个指针变量。而在输出时,系统先输出它所指向的一个字符数据,然后自动加1,指向下一个字符,就继续输出。

这个是由c语言标准规定的。

[ 本帖最后由 luchar 于 2011-11-17 21:02 编辑 ]
2011-11-17 20:46
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
得分:3 
常量字符串也有存放空间啊,那就有了地址了!

★★★★★为人民服务★★★★★
2011-11-17 20:47



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




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

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