|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ sizeof和string
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1550
人关注过本帖
标题:
sizeof和string
只看楼主
加入收藏
持剑的战士
等 级:
新手上路
帖 子:30
专家分:3
注 册:2019-12-6
结帖率:
62.5%
楼主
收藏
问题点数:0 回复次数:3
sizeof和string
#include <stdio.h>
#include <string.h>
int main()
{
char x[]="STRING";
x[0]='0';
x[1]='\0';
x[2]=0;
printf("%d %d\n",sizeof(x),strlen(x));
结果是7和1
return 0;
}
有没有大佬能帮我分析一下这个程序呢?下面的x[0]和x[1],x[2]分别是什么意思呢?
搜索更多相关主题的帖子:
结果
include
string
sizeof
分析
2020-01-07 19:41
举报帖子
使用道具
赠送鲜花
吕孟伟
等 级:
贵宾
威 望:
27
帖 子:200
专家分:870
注 册:2018-10-4
第
2
楼
收藏
得分:0
sizeof()返回字符串的大小,包含'\0';strlen()返回字符串的长度,不包含'\0'。
char x[]="STRING";初始化字符串占7个字节,长度为6;
x[0]='0':将字符串首元素设置为0;
x[1]='\0';将第二个元素设置为'\0',结束字符串,此时字符串中只有一个元素0,长度为1。
x[2]=0;已没意义。
[此贴子已经被作者于2020-1-7 21:50编辑过]
借用一下侯捷的话:勿在浮沙筑高台。
2020-01-07 21:44
举报帖子
使用道具
赠送鲜花
forever74
来 自:CC
等 级:
版主
威 望:
58
帖 子:1694
专家分:4282
注 册:2007-12-27
第
3
楼
收藏
得分:0
难道要我挨个提醒要看教材?
这样我怕是会有进化的趋势。
对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-01-07 22:10
举报帖子
使用道具
赠送鲜花
bcbbcclbbc
等 级:
贵宾
威 望:
11
帖 子:194
专家分:528
注 册:2019-8-15
第
4
楼
收藏
得分:0
问题有些笼统,只能大概给出部分解释。
字符数组与字符串
字符数组,数组元素x[0],x[1],x[2]。。。指的就是对应下标元素的值,没有什么特殊,可以用scanf函数以%d或者%c输出。
只是字符与字符串之间有区别。
而字符串是指定以字符‘\0’结尾的,处理字符串时,遇到‘\0’则说明字符串结束了。所以字符串函数strlen(x)遇到字符‘\0’结束。
sizeof(x)是计算数组x这个数据类型的内存大小。字符数组初始化,但未给出数组大小,sizeof可以算出计算机给数组x多少内存。
char x[]="STRING";
数组x初始化为一个字符串则是给数组x分配了‘S’‘T’‘R’‘I’‘N’‘G’‘\0’这7个字符的内存。
2020-01-09 23:03
举报帖子
使用道具
赠送鲜花
4
1/1页
1
快速回复:
sizeof和string
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.018526 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved