求字符串长度的问题(sizeof)
#include"stdafx.h"#include<iostream>usingnamespacestd;int_tmain(intargc,_TCHAR*argv[]...
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char *p="hello";
cout<<sizeof(p);
return 0;
}
为什么输出为4
为什么不是我想求的hello这个字符串的长度呢?谢谢
我想求字节数哦 如果规定只能用sizeof 呢? 展开
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char *p="hello";
cout<<sizeof(p);
return 0;
}
为什么输出为4
为什么不是我想求的hello这个字符串的长度呢?谢谢
我想求字节数哦 如果规定只能用sizeof 呢? 展开
3个回答
展开全部
首先你要明确sizeof到底是干什么的?用来求变量占用的空间大小
sizeof(p);求得是指针p的大小,不管你上面是任何类型,任何字符串,都是4,因为指针的空间大小就是4;
char *p="hello";//改成char p[]="hello";
cout<<sizeof(p);//结果是6,字符串后面还有个'\0'字符
cout<<strlen(p); //结果是5,忽略此字符
sizeof(p);求得是指针p的大小,不管你上面是任何类型,任何字符串,都是4,因为指针的空间大小就是4;
char *p="hello";//改成char p[]="hello";
cout<<sizeof(p);//结果是6,字符串后面还有个'\0'字符
cout<<strlen(p); //结果是5,忽略此字符
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-07-26
展开全部
cout<<strlen(p);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询