关于字符串和数组字符串

来源:互联网 发布:列兵布利特升级数据 编辑:程序博客网 时间:2024/05/22 04:14

数组字符串和真正的字符串的区别

#include<iostream>using namespace std;int main(){    char a[] = "hello"; //位于栈内,所以可以被修改    a[0] = 'X';    cout<<a<<endl;  //Xello    char* p = "world"; //位于字符串常量区(静态存储区),不能被修改    p[0] = 'X';   //错误:且在编译阶段是不能发现此错误的.    cout<< p <<endl;    return 0;}

对于他们的strlen和sizeof

#include<iostream>#include<string.h>using namespace std;int main(){    char a[] = "hello world";    char b[20] = "hello world";    char* p = a;    cout<<sizeof(a)<<endl; //12包括结尾的'\0'    cout<<strlen(a)<<endl; //11不包括结尾的'\0'    cout<<sizeof(b)<<endl; //20    cout<<strlen(b)<<endl; //11也不包括结尾的'\0'    cout<<sizeof(p)<<endl;    return 0;}

这里写图片描述

参考:高质量C/C++编程指南

0 0
原创粉丝点击