1、scanf函数在使用的时候一定要注意加上取地址符“&”,该函数是C语言提供的。
2、常量
C语言中的常量分为以下四种:字面常量、const修饰的常变量、#define定义的标识符常量、枚举常量。
(1)字面常量:像“3;”、“3.14;”这样子就属于字面常量。
(2)const修饰的常变量:还是举例子给大家说明
#include<stdio.h>
int main()
{
const int num = 4;
printf("%d\n", num);
return 0;
}
#include<stdio.h>
int main()
{
const int num = 4;
printf("%d\n", num);
num = 8;//这句代码是有错误的,此处仅给大家展示一下效果
printf("%d\n", num);
return 0;
}
接下来看一下在数组里的效果:
#include<stdio.h>
int main()
{
const int n = 4;
int arr[n];//当然,这句代码也是有错误的,为了给大家展示一下效果
return 0;
}
所以说,const修饰的常变量不能用来定义数组的大小,说明const修饰的常变量本质上还是一个变量,但是const赋予了该变量常属性。const int n = 1;此处的n是一个变量,但是又有常属性,所以我们称他为常变量,也就是说,可以不让它变化,但是也不能拿它当一个常量使用。
(3)#define定义的标识符常量:像“#define MAX 100; ”这样子的,MAX就是一个标识符常量,该常量的值是100。
(4)枚举常量:枚举的意思相当于一一列举,主要针对那些有限个的变量,比如性别等,枚举常量是有枚举关键字的,即enum。下面我将以性别为例,来简单展示一下枚举变量的效果:
#include<stdio.h>
int main()
{
enum
{
MALE, FEMALE, SECRET//这三个就是枚举类型
};
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}
所以能看出来,枚举类型都是有对应值的。
3、字符串
由双引号引起来的一串字符称为字符串字面值,简称字符串。
字符用单引号,字符串用双引号。
“%s”用来打印字符串。
数据在计算机上存储的时候都是存储的二进制,所以每一个字符都有其对应的值,称为ASCII编码,值就是ASCII码值。
strlen(string length)这个函数就是用来计算字符串长度的一个函数,其头文件是“string.h”。
接下来让我们用代码来展示一下字符串结束标志“\0”的作用:
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c' };
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
此段代码中我定义了两个字符数组,接下里大家可以看一下输出结果:
出现此结果的原因是因为第二个字符串没有结束标志,所以系统自动继续向下自动读取,直到遇见结束标志。
如果将“char arr2[] = { 'a','b','c' }”换成“char arr2[] = { 'a','b','c','\0' }”或者“char arr2[] = { 'a','b','c',0 }”那么arr1和arr2的输出结果就一样了。
在双引号引起来的字符串的结尾是默认有一个“\0”的,作为结束标志。“\0”是一个转义字符。
在计算字符串长度的时候“\0”作为结束标志,不算作结束标志,也就意味着不能计入字符串长度。接下来,让我用上文提到的“strlen”函数来展示一下效果。
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "abc";
char arr2[] = { 'a','b','c','\0' };
printf("%d\n", strlen(arr1));
printf("%d\n", strlen(arr2));
return 0;
}
4、转义字符
转义字符顾名思义就使改变字符原来的意思,在这里需要注意的是转义字符一般是有多个单个字符组成,所以在计算字符串长度的时候要特别注意转义字符,防止出错。
下面我们举个例子:
#include<stdio.h>
#include<string.h>
int main()
{
printf("%d\n", strlen("D:lo\t\\o\52"));
return 0;
}
在这里“\t”、“\\”、“\52”都是转义字符,而且字符串的结束标志也不计入字符串长度。
坚持学习,坚持输出,如果读者有发现问题,欢迎批评指正哦!