![](/img/trans.png)
[英]What is the difference between declaring an char pointer and an array of chars in a function parameter list?
[英]What is the difference between chars and strings?
我正在做 cs50 编码练习,但我没有得到字符串和字符。 我对它们有问题,因为我不明白它们是什么。 我不知道字符和字符串之间的区别,因为它们对我来说似乎相同。 我的代码是:
#include<stdio.h>
int main(void){
char c=A;
printf("%c", c);
string a = A;
printf("%s", a);
}
但无论是字符还是字符串,它都会打印 AA 而不会更改。 如果我这样做:
#include<stdio.h>
int main(void){
char c=A;
printf("%c", c);
char a = A;
printf("%c", a);
}
它仍然打印AA。 即使我这样做:
#include<stdio.h>
int main(void){
string c=A;
printf("%s", c);
string a = A;
printf("%s", a);
}
即使我从字符交换为字符串,它仍然会打印 AA。 我完全看不出有什么不同。 请帮我理解。 我从字符更改为字符串,但结果没有改变。 请帮我弄清楚。
char
表示单个字符。 字符串是一系列字符。
string 是 String 的别名,我们可以在其中存储 Char Called Word 的集合,例如 string name = "mukesh"; 但在 char 我们只能存储单个字符
字符 ch='b';
字符串是一个字符数组。
char
只是英文中的一个字符或字母。
类似的字符示例有 'A'、'B'、'w'、'3'、'\n' 等。
在 C/C++ 中,一个char
占用 1 个字节的空间并且在单引号内。
'\n'
、 '\0'
等特殊字符也是字符。
它们占用 1 个字节的存储空间,也可以表示为 integer。 在 google 上搜索 ASCII 以了解 integer 关系。
string
是字符的集合。
例如“约翰”、“你好”、“什么是苹果?”。
字符串 "John" 中的字符是J
、 o
、 h
、 n
、 \0
。 字符串的长度为 5。字符串始终以\0
字符结尾。
字符串在 C/C++ 中的双引号内。
有一些可能的常用字符串定义(C 标准定义“字符串是由第一个 null 字符终止并包括在内的连续字符序列。 ”,参见C11 7.1.1 )
a) 最后一个值为0
的char
值数组,例如
(char[4]){'b', 'a', 'r', '\0'} // a) string
b) 包含'\0'
的char
值数组,例如
(char[7]){'f', 'o', 'o', '\0', 'x', 'y', 'z'} // not an a) string; b) string
最后一个字符串可以“增长”,因为底层数组有足够的空间
c)指向上述之一或此类数组中间某处的指针,例如
char array[10] = "foo\0bar\0X"; // not an a) string
char *p = &arr[4]; // not an a) string, not a b) string
最后一个array
不是定义 a) 的字符串,它是定义 2) 字符串的字符串; p
指向'b'
:根据 c) 的定义,该指针是一个字符串。
始终确保您知道您正在讨论哪种字符串!
在这些定义中,c) 是距离 C 标准定义最远的一个。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.