深入理解C语言中的字符和字符串
1. 字符与字符串的基础概念
在C语言中,字符和字符串是非常重要的概念。C语言没有内置的字符串类型,字符串通常被表示为以’\0’结尾的字符数组。字符则通过其在机器字符集中的整数值来表示。这种透明的表示方式赋予了C语言极大的灵活性,但也带来了更多的责任:程序员必须仔细管理字符和字符串,确保程序的正确性。
1.1 字符常量与字符类型
字符常量在C语言中实际上是一个 int
类型,而不是 char
类型。这意味着 sizeof('a')
的结果是 sizeof(int)
,通常是4个字节,而不是1个字节。这与C++不同,在C++中字符常量确实是 char
类型。例如:
#include <stdio.h>
int main() {
printf("Size of 'a': %zu\n", sizeof('a'));
return 0;
}
1.2 字符串字面量
字符串字面量(如”hello”)在C语言中表示为一个以’\0’结尾的字符数组。例如,字符串字面量”!”实际上包含两个字符:’!’和’\0’。因此,使用 strcat
时,应该将单个字符作为字符串处理:
char string[10] = "Hello";
strcat(string,