初识C语言(一)

既然是初识,那就只是浅浅的去了解C语言而已,并不深入(怎么感觉有点像渣男)


前言

这一篇笔记主要是初步的了解C语言,所以并不会过多的深入,就像找女朋友一样,先去了解,再去深入。

例如:初识字符串,转义字符,选择语句,选择语句,循环语句,函数&&数组,操作符,常见关键字,常亮和宏,指针等等…


字符串+转义字符+注释

1.初识字符串

C语言里面:字符串就是一串字符 – 用双引号括起来的一串字符。

字符串
"hello work.\n"//这样就被称为一个字符串

字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。

int main(){
	char arr[] = "hello";
//虽然这里看到的是五个字符,但其实在计算机里面是“hello\0”
//字符串在结尾的位置隐藏了一个\0的字符
//\0是字符串的结束标志
	return 0;
}

接下来是一段验证代码,可以猜一下在这段代码里,lenarr1arr2分别打印的结果是什么。

#include<string.h>
int main(){
	char arr1[] = "abb";
	char arr2[] = {'a', 'b', 'b'};
	int len = strlen("abb");//string length
	//strlen需要引用头文件#include<string.h>
	printf("%d\n", len);
	//打印字符串
	printf("%s\n", arr1);//%s - 字符串
	printf("%s\n", arr2);
	return 0;
}

说实话,对于我这种菜鸟来说结果其实是有点出乎意料的
len打印的结果为3。
arr1打印的结果为abb。
arr2打印的结果为abb,接着后面一串乱码。
注:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。

原因其实是在计算字符串长度的时候,到\0就会停止,而在arr2中因为每个字符都用单引号(’ ')给包住了,这里面并没有包含\0的存在,所以会一直计算直到找到\0为止。

知道了这个原因后,我们再来看一段代码

#include<string.h>
int main(){
	char arr1[] = "abb";
	char arr2[] = {'a', 'b', 'b'};
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	//这里的arr1打印结果为3,arr2的打印结果为随机值
	return 0;
}

有了之前的理论,我们不难发现,arr1这个字符串因为里面带有\0的存在,所以能计算得出是3,而arr2却因为没有\0的存在,导致一直在计算直到找到\0为止,所以打印出来的结果为随机值。

在这个基础之上,我们再改进一下代码

#include<string.h>
int main(){
	char arr1[] = "abb";
	char arr2[] = {'a', 'b', 'b', '\0'};
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2));
	//此时的arr1和arr2打印结果就都为3了
	return 0;
}

重要的事情说三遍:字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。


2.初识转义字符

话不多说,直接看码!猜一下这段代码打印出来的结果

#include<stdio.h>
int main(){
	printf("c:\test\test.c\n");
	return 0;
}

打印结果为c: es. est.c
这里的打印结果没有达到预期,其实是转义字符\t在里面搞鬼了,转变了原来的意思。

接下来再看一段代码

#include<stdio.h>
int main(){
	printf("ab\ncd");//这里的\n就是转义字符,代表转行。
	printf("%s\n", "\"");//这里的\就是转义"让它可以打印,
	//如果没有\的话这里的双引号就会发生语法错误
	return 0;
}

这里需要补充一个知识:
%d - 整数类型

%c - 单字符类型

%s - 字符串类型

这里还是代码实例

#include<stdio.h>
int main(){
	printf("%d\n", 100);//整型不用加符号
	printf("%c\n", 'a');//单字符型用 ' '
	printf("%s\n", "a");//字符串类型用 " "
	return 0;
}

有了以上的铺垫,此时我们再尝试把一开始的代码打印出来看看。

打印出符合预期的代码
#include<stdio.h>
int main(){
	printf("c:\\test\\test.c\n");
	return 0;
}

\\用于表示一个反斜杠,防止它被解释为一个转义序列符
这样我们的代码就可以正确的打印出c:\test\test.c了。

除此之外我们还有很多不同的转义字符,如:
\a : 警告字符,蜂鸣
\b : 退格符
\f : 进纸符
\n : 换行
\r : 回车
\t : 水平制表符
\tv : 垂直制表符
\ddd : ddd表示1~3 个八进制的数字。如: \130x
\xdd : dd表示2个十六进制数字。如: \x30 0
当然,这些转义字符也不是必用的,只要知道以上这些是转义字符就可以了。

有了上面的知识储备后,我们再来看下面一段代码

打印出的结果是多少
#include<stdio.h>
int main(){
	printf("%d\n", strlen("c:\test\328\test.c"));
	return 0;
}

结果为14。
\t算一个转义字符,\32算一个转义字符。为什么是\32而不是\328呢,是因为\ddd表示的是1~3个八进制的数字,而八进制数字里面是没有8的,所以这里的\32并没有带8一起玩。
补充一个小知识:八进制是由0,1,2,3,4,5,6,7这八个数字组成的。


3.注释

注释,是用来解释复杂代码的,是用来增强代码可读性的。
// 是常用的注释方法
/* 注释 */ 这种注释风格 - 不支持嵌套注释。

总结

以上内容主要说明了:
1、C语言里的字符串是由" "(双引号)括起来的一串字符所组成。
2、转义字符使用需谨慎,要先去了解再去使用。
3、注释的使用方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值