您的位置:首页 > 其它

string,char,char*,char a[] 占字节数, 以及sizeof,strlen(),str.length()的用法

2013-09-09 09:55 501 查看
// studystring.cpp :
//

#include "stdafx.h"
#include <iostream>

#include <string>
using namespace std;

int main(int argc, char* argv[])
{

cout<<"char,char*,string 在C++中的占几个字节: -------------------------"<<endl;
cout<<"sizeof(char) = "<<sizeof(char)<<endl; //=1

cout<<"sizeof(char*) = "<<sizeof(char*)<<endl; //=4

cout<<"sizeof(string) = "<<sizeof(string)<<endl; //=16

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

string str;
str = "12345678912"; // 11个字符

cout<<"the size of str = "<<sizeof(str)<<endl; // = 16

cout<<"the length of str = "<<str.length()<<endl;// = 11

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

//--
char* ch = "12345678912"; // 11个字符

cout<<"the size of ch = "<<sizeof(ch)<<endl; // = 4

cout<<"the length of ch = "<<strlen(ch)<<endl;// = 11

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

//--

char a[]="12345678912"; // 11个字符

cout<<"the size of a = "<<sizeof(a)<<endl; // = 12,包括了字符串结束符'\0'

cout<<"the length of a = "<<strlen(a)<<endl; //=11

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

//--
char chr[12]="12345678912"; // 11个字符 char chr[11]="12345678912"; 编译报错 array bounds overflow

cout<<"the size of chr = "<<sizeof(chr)<<endl; // =12

cout<<"the length of chr = "<<strlen(chr)<<endl; // =11

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

//--
char chrr[100]="12345678912"; // 11个字符

cout<<"the size of chrr = "<<sizeof(chrr)<<endl; // =100

cout<<"the length of chrr = "<<strlen(chrr)<<endl; // =11

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

//--
char strr[8]={'a'};
cout<<"the size of strr = "<<sizeof(strr)<<endl; // =8

cout<<"the length of strr = "<<strlen(strr)<<endl; // =1

cout<<"----------------------------------------------------------------"<<endl;
cout<<endl;cout<<endl;

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: