C语言基础教程 之 字符串

C语言基础教程目录:https://blog.csdn.net/SparkLee2013/article/details/85229406


1、'x'和"x"

'x'是字符常量,而"x"是字符串串常量,两者是不同的。

一个字符在内存中只占一字节,而字符串本质上是多个字符组成的字符数组。C语言规定,在每一个字符串常量的结尾,系统都会自动加一个字符'\0'作为该字符串的“结束标志符”(字符'\0'的ASCII码是0,字符串常量"x"在内存中不是占用一个字节,而是占用了两个字节空间),系统据此判断字符串是否结束。这里要特别强调一点:'\0'是系统自动加上的,不是人为添加的。

#include <stdio.h>

void main() {
    char x1 = 'x';
    printf("sizeof(x1) = %d byte, sizeof('x') = %d bytes\n", sizeof(x1), sizeof('x'));

    char x2[1] = { "x" };
    printf("sizeof(x2) = %d byte, sizeof(\"x\") = %d bytes\n", sizeof(x2), sizeof("x"));
}

# 输出结果:
sizeof(x1) = 1 byte, sizeof('x') = 4 bytes
sizeof(x2) = 1 byte, sizeof("x") = 2 bytes

2、字符串常量存储方式

C语言中没有"字符串"数据类型(在C++/JAVA等语言中是有"字符串"数据类型的),可以通过字符数组(char数组)来替代

字符串一定是一个char数组,但char数组未必是字符串

数字0(和字符'\0'是等价的)结尾的char数组就是一个字符串,但若char数组没有以数字0结尾,则不是一个字符串,只是一个普通的字符数组,故字符串是一种特殊的char数组

在 C 语言中,字符串有两种存储方式,一种是通过字符数组存储,另一种是通过字符指针存储。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值