社区
C++ 语言
帖子详情
关于strlen()与指针常量
小V小V志
2009-12-26 05:53:56
1.
void main()
{
char *str="12345";
cout<<strlen(str)<<"\t"<<sizeof(str);
}
结果为什么是5 、4
而不是6、4
2.
char * const p="ABC";
这个p[0]='B';对吗???
...全文
268
18
打赏
收藏
关于strlen()与指针常量
1. void main() { char *str="12345"; cout<<strlen(str)<<"\t"<<sizeof(str); } 结果为什么是5 、4 而不是6、4 2. char * const p="ABC"; 这个p[0]='B';对吗???
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wwwzyb2002
2009-12-28
打赏
举报
回复
[Quote=引用 9 楼 crlystaldong 的回复:]
那请问大家这个
void main()
{
char st[20]="hello\0\t\\\"; // ;前掉了个"号,变量名也不对,应为str
cout < <strlen(str) < <"\t" < <sizeof(str); // 首先 < < 是不对的,其次输出为5 20
}
答案是13.20
为什么??
[/Quote]
总结下:发代码之前请先自个测试下,发结果之前也请实验下,信口雌黄是会误导人的。
cq_gongyoulong
2009-12-28
打赏
举报
回复
strlen(str); ----计算str中出现第一个'\0'位置的长度
比如:
char str[] = "abc\0de";
len1_Str = strlen(str);
len2_Str = sizeof(str);
len1_Str = 3; 而不是等于6.
但是:len2_Str = 7;
yhm9084nerv
2009-12-27
打赏
举报
回复
答案错了,运行了石a,我刚刚试了
bean11222
2009-12-27
打赏
举报
回复
[Quote=引用 13 楼 bearnan 的回复:]
那请问大家这个
void main()
{
char st[20]="hello\0\t\\\";
cout < <strlen(str) < <"\t" < <sizeof(str);
}
答案是13.20
为什么??
答案有点问题呀!是5 20呀!
[/Quote]
这个在VS2005中编译不通过 报错:常量中有换行符 ~~~
bearnan
2009-12-27
打赏
举报
回复
那请问大家这个
void main()
{
char st[20]="hello\0\t\\\";
cout < <strlen(str) < <"\t" < <sizeof(str);
}
答案是13.20
为什么??
答案有点问题呀!是5 20呀!
liubingqian
2009-12-27
打赏
举报
回复
[Quote=引用 8 楼 crlystaldong 的回复:]
引用 2 楼 loaden 的回复:
这个p[0]='A';
书里答案是B的```我不解!!
[/Quote]
尽信书不如不读书,哪个书也不保证无错,更何况现在出版业这么浮躁,录入、校对根本都不负责。
「已注销」
2009-12-27
打赏
举报
回复
[Quote=引用 9 楼 crlystaldong 的回复:]
那请问大家这个
void main()
{
char st[20]="hello\0\t\\\";
cout < <strlen(str) < <"\t" < <sizeof(str);
}
答案是13.20
为什么??
[/Quote]
楼主可以另开帖子讨论这个问题。
fire123cba
2009-12-26
打赏
举报
回复
共同学习
honghu069
2009-12-26
打赏
举报
回复
[Quote=引用 8 楼 crlystaldong 的回复:]
引用 2 楼 loaden 的回复:
这个p[0]='A';
书里答案是B的```我不解!!
[/Quote]
估计那本书是以TC做编译器...
小V小V志
2009-12-26
打赏
举报
回复
那请问大家这个
void main()
{
char st[20]="hello\0\t\\\";
cout<<strlen(str)<<"\t"<<sizeof(str);
}
答案是13.20
为什么??
小V小V志
2009-12-26
打赏
举报
回复
[Quote=引用 2 楼 loaden 的回复:]
这个p[0]='A';
[/Quote]
书里答案是B的```我不解!!
zxustc
2009-12-26
打赏
举报
回复
1.c风格的字符串以及C++ 标准库中的string类型都以'\0'作为结束的标志,但是调用库函数计算长度时都不计算这个结束的标志。
2.这个p可以理解为数组的首地址,p[0]应该等于'A'
lori227
2009-12-26
打赏
举报
回复
char * const p="ABC"; 这样定义相当于 const char* const p = "ABC";
p[0] = 'B' 出错的
davelv
2009-12-26
打赏
举报
回复
[Quote=引用 4 楼 loaden 的回复:]
sizeof(str); 与 sizeof(char*)是等效的!
[/Quote]
受限声明:当且仅当str是字符串指针而非字符串数组的时候等效
「已注销」
2009-12-26
打赏
举报
回复
sizeof(str); 与 sizeof(char*)是等效的!
starwalker
2009-12-26
打赏
举报
回复
1. strlen取字符串长度,不包括结尾'\0'
2. 写法不对,但是不一定会出错,要看编译器。
「已注销」
2009-12-26
打赏
举报
回复
这个p[0]='
A
';
「已注销」
2009-12-26
打赏
举报
回复
strlen计算时,不包括字符串结束符NULL。
sizeof计算的是指针大小:4byte、
免费下载:C语言难点分析整理.doc
函数指针数组与返回数组指针的函数 这部分介绍了函数指针和数组指针的高级用法。 ### 38. 右左法则- 复杂指针解析 这部分探讨了复杂的指针声明,并提供了一种易于理解的解析方法。 ### 39. 回车和换行的区别 这...
C++经典50大面试题
#### 面试题2:写出bool、int、float、指针变量与“零值”比较的if语句 对于不同的数据类型,与零值比较的方式也有所不同: - **bool型数据**: ```cpp if (flag) { // ... } else { // ... } ``` 这里`...
指针常量
和常量指针详解
常量指针 定义:又叫常指针,可以理解为常量的指针,也即这个是指针,但指向的是个常量,这个常量是指针的值(地址),而不是地址指向的值。 关键点: 1.常量指针指向的对象...
指针常量
定义:本质是一个常量,而.
常量指针、
指针常量
和指向常量的常指针的区别
常量指针
指针常量
和指向常量的常指针本质上都是指针,只是由于const关键字所约束的范围不同,导致它们在修改指针本身或指针所指向的数据时受到不同的限制。常量指针(const修饰的是指针所指向的数据,因此不能通过...
2. 常量指针和
指针常量
的通俗理解与区分
通过简单对比简要分析常量指针和
指针常量
的区别
C++ 语言
65,187
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章