C++中什么是字符串,什么是字符字面值

说的通俗易懂点 ,不要全是专业术语看不懂, 我是新手

  字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。

  通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。


  字符串字面值是一串常量字符,字符串字面值常量用双引号括起来的零个或多个字符表示,为兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。
字符串没有变量名字,自身表示自身

"Hello World!" //simple string literal
"" //empty string literal
"\nCC\toptions\tfile.[cC]\n" //string literal using newlines and tabs

  字符字面值: 'A' //single quote:character literal
字符串字面值: "A" //double quote:character string literal.包含字母A和空字符的字符串

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-16
例子1:
int main(){
char *p1 = "hello";
char *p2 = "hello";
if(p1 == p2){ // 如果p1与p2指向的地址相同
cout << "p1 = p2 " << endl;
}else{
cout << "p1 != p2" << endl;
}
}
打印结果是 "p1 = p2"

例子2:
int main(){
char *p1 = "hello";
char *p2 = "hellox";
if(p1 == p2){
cout << "p1 == p2" << endl;
}else{
cout << "p1!=p2" << endl;
}
return 0;
}
打印结果 “p1 != p2”

例子3:
int main(){
char str1[]="hello";
char str2[]="hello";
char *p1 = str1;
char *p2 = str2;
if(p1 == p2){
cout << "p1 = p2" << endl;
}else{
cout << "p1 != p2" << endl;
}
}
打印结果: "p1 != p2"

例子4:
int main(){
char str[]="hello";
char *p1 = str;
char *p2 = "hello";
if(p1 == p2){
cout << "p1 == p2" << endl;
}else{
cout << "p1 != p2" << endl;
}
return 0;
}

字符串是一个变量单位,字符字面值是一个字面值单位。
比如 int a = 5;
a是变量,5是字面值

char str[]="hello";
str 是字符串的变量,"hello" 是字符字面值
变量是一个存储容器,字面值是 存放在容器里的东西
变量是占内存空间,字面值是占容器空间

当这些没有变量的字符面值 就会统一放在 数据常量区,并且是唯一的存在追问

p!是什么意思

本回答被提问者采纳
相似回答