c语言初阶学习笔记——字符,字符串,数组,转义字符

一个英文字母(不分大小写)占一个字节的空间。一个中文汉字占两个字节的空间,可以当成字符串去处理

 注意:只有字符串才有'\0'结束标志,像这样的字符数组就不是字符串char arr2[] = { 'a','b','c' };

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。如char arr1[]="abc"和char arr2[]={ 'a','b','c','\0'}都是字符串

char arr1[]="abc";printf("%s\n", arr1);//打印的是不是随机值

char arr2[] = { 'a','b','c' };//%s是打印字符串

printf("arr=%s\n", arr2);//打印的是随机值,因为不知道\0的位置,到\0终止打印

 字符数组的初始化:

//不指定长度,没有\0结束符,有多少个元素就有多长

char arr3[] = { 'a','b','d'};

//指定长度,后面没有赋值的元素,自动补0

char arr4[10] = { 'a','b','c' };// //不完全初始化,数组有10个元素,只给3个字符初始化,剩余7个没有给值,默认被初始化为'\0'

//不指定长度,字符串初始化,编译器自动在后面补0

char arr5[] = "abcde";

 strlen的功能是计算字符串长度,注意:是用来计算字符串的长度,不是类型占内存的大小,所以\t这种转义字符只是一个长度。sizeof会将空字符\0计算在内,而strlen不会将空字符\0计算在内。

转义字符:

printf("%d\n", strlen("c:\test\121"));//结果为7,\121是一个转义字符,不是数字,所以只是一个长度

printf("%d\n", sizeof("c:\test\121"));//结果为8,ASCII 码中,一个英文字母(不分大小写)为一个字节,一个中文汉字为两个字节。

注意:\xlf由于十六进制中没有l,十六进制中有0~9以及a~f(或A~F),所以不是合格的转义字符。\018按开头来看是一个八进制表示形式,而八进制只有0~7这8个元素,所以使用8是不合法的,这也是一个不合格的转义字符。

奇怪的转义字符之退格符\b:

printf("abcd\b\n");//结果:abc

printf("abcd\bef\n");//结果:abcef

printf("%d\n", '\121');//结果:81

printf("%c\n", '\121');//结果:Q

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值