转义字符
就跟字面意思一样,转义字符就是将普通的字符转变成一些不方便打印的字符
如n加上\,就变成了\n,在字符串中表达换行的意思
printf("你\n好");
诸如其他转义字符,就参考以下的文章,不用去记,用的时候去看,用的多了自然就记住了
C语言——转义字符_c语言转义字符_Kevin_.的博客-CSDN博客
数组
数组就是将同类型的数据储存在一起
用法如下
int arr[3] = {10,10,10};
int就是数组的类型,在变量名后面加上[]就代表是数组,里面的数字代表数组的长度
大括号里的内容就是数组里的内容,用逗号隔开
但是当你往数组中塞入了超过数组长度的数据后,代码就会报错
int arr[3] = {10,10,10,10};
当然[]里的数字也可以不写,这样编译器会自动的创建,刚好能存下所有数据长度的数组
int arr[] = {10,10,10,10};
那我们该如何去调用数组里的数据呢
这就要用到数组的索引了,访问方法就是数组名[索引]
注意:索引是从0开始的,所以当想要访问数组中第3个数据时,应当输入arr[2],而不是arr[3]
int arr[] = {2,4,6,8,10};
printf("%d\n",arr[2]);
运行结果
字符串
C语言中是没有专门的字符串类型的
想要输出字符串,要么直接在printf中写入,要不创建一个字符数组
char arr1[] = "abcdefg";
char arr2[] = {'a','b','c','d','e','f','g'};
printf("abcdefg\n");
printf("%s\n",arr1);
printf("%s\n",arr2);
运行结果
这里会发现arr2用字符组成的数组输出时,输出完后还输出了一串乱码
这是因为,当你写出一个字符串时,在末尾其实是自带一个\0的
它的意思是当输出字符串的时候,遇到\0才会停止输出
而自己创建的字符数组是不会创建这个\0的,它会一直输出下去,直到遇到\0为止
所以当我们加上一个\0时,问题就完美解决了
char arr1[] = "abcdefg";
char arr2[] = {'a','b','c','d','e','f','g','\0'};
printf("abcdefg\n");
printf("%s\n",arr1);
printf("%s\n",arr2);
运行结果
值得一说的是\0只当作输出字符串的结束标志,不算在字符串的数组长度中
所有其实arr1和arr2的数组长度是一样的,可以用strlen函数验证一下
char arr1[] = "abcdefg";
char arr2[] = {'a','b','c','d','e','f','g','\0'};
//strlen是返回参数的字符串长度的函数
printf("%d\n",strlen(arr1));
printf("%d\n",strlen(arr2));
运行结果
注释
在学习中我们可以会遇到这些代码我写的时候还知道是什么意思,等过几天就看不懂的问题时
就要使用编译器所带的注释了,被注释的内容将不会参与代码运算,相当于没有这些内容
注释的格式分为两种
一种是//两个斜杠,单行注释,会将这一行的内容给注释掉
一种是/*内容*/,多行注释,会将所有包含的内容都注释掉
//int a = 1;
int b = 2;
int c = 3;
/*printf("%d\n",a);
printf("%d\n",b);*/
printf("%d\n",c);
运行结果
可以看出,被注释后,a和b都没有被输出
注意:多行注释可能会发生嵌套关系,从而导致注释失效,如:
/*int a = 1;
/*int b = 2;
int c = 3;*/
printf("%d\n",a); */
当在编译器输入这些代码时你会发现,第4行代码并没有被注释掉
这是因为,编译器在识别注释时一旦遇到(*/结尾)便会结束
而包含在内的(/*开始)就会被注释掉,从而无法发挥正常作用