一、常量是什么,常量的分类有哪些?
他的官方说法是程序运行过程中其值不能被改变的量,也就是一直保持一个值,和变量不同。
常量又分为四种
1.字面常量
就是我们直接写出的常量,比如直接在程序中写出 30; 3.14;“abcd” 'A' 等等,可以直观看到的量。
2.const修饰的常变量
比如 const int num=100; 他具有常属性,修饰之后不可以直接修改数值,只能用特殊的方式改变。 注意:此时num本质上其实还是个变量,但他具有常属性。
为什么说他是个变量呢?怎么证明?
这时候我们就可以用到数组的定义,我们都知道,在C语言当中,数组的定义必须使用常量来定义(C99语法之前)
此时程序依然会报错,这说明num本质上依然是个变量。
3.#define定义的标识符常量
这种就没有什么好说的,就是用#define A=10; 定义A的值固定为10,不可被改变。
4.枚举常量
枚举的字面意思就是一一列举 他的关键字是enum
例如:enum Sex { MALE,FEMALE,SECRET} 这样列出的值都为枚举常量。
枚举常量的默认值为0,向下依次加一,但是可以修改他的初始值。
枚举常量使用举例
这时候我们可以将MALE赋个值,将他赋为8吧,那么依次向下的数值都会改变。
这时候可以看到他的初值发生改变,下面的值会依次加一。
那么这时候可能会有同学问,那我修改中间值可以吗?哈哈哈 对于这个问题,那当然是可以的了,不过他就不会依次往下加一了。
这时候我们可以看到,修改初值之前的值,他会默认从0再次重新开始往下加1,而我们赋值的值,也会依次往下加一。
对于常量就不多赘述了,下面接着来。
二、字符串和转义字符+注释
1.字符串
就是由双引号引起来的一串字符 “abcde”这种一串字符,这里有个需要注意的点,字符串会有一个结束标志\0,他会默认在字符串末尾,但他不会算作字符串的内容,在计算字符串长度时也不会计入。
2.转义字符
顾名思义,转义字符的作用就是转义字符。
我们可以列举几个常用的转义字符:
\?:书写多个问好时使用,防止他们被解析为三字母词(三字母词:形如??)会被解析为])
\':表示字符常量'
\":用来表示一个字符串内部的双引号
\\:用来表示一个反斜杠,防止他表示为转义符号
\a :警告字符,蜂鸣
\b :退格符
\f: 进纸符
\r: 回车
\n: 换行
\t:水平制表符(一个Tab相当于)
\v:垂直制表符
\ddd:ddd表示1~3个八进制的数字 如:\130 代表X(表示八进制数字转换成十进制数字之后代表的 ascall码值对应的字符或数字)
\xdd:dd表示2个十六进制数字 如\x30 代表字符0(表示十六进制数字转换成十进制数字之后代表的 ascall码值对应的字符或数字)
这其中\?,\‘,\",\\ 都是用来防止他们本来的意思无法显示,用来打印他们本身。\ddd和\xdd需要我们多加注意,他们的意思都是将其他进制转换成十进制所代表的ascall码对应的字符或数字。
3.注释
注释顾名思义就是对代码的作用进行解释。让我们更加容易理解。
我们常用的有两种注释方法。
一种是C++的注释风格,用\\来注释,例如 int num=10 \\对num这个整形变量赋予10的初值。
另一种是C语言的注释风格,用/*来开始,*/来结束。但是这种注释也有一定的缺陷,他不可以嵌套使用。
三、选择语句
选择语句顾名思义就是选择,人生会面对选择,那么程序中也会有选择。
选择语句我们用if实现
#include<stdio.h>
int main()
{
int xuanze = 0;
printf("要不要这样?(1/0)");
scanf("%d", &xuanze);
if(xuanze == 1)
{
prinf("这样好\n");
}
else
{
printf("这样不好\n");
}
return 0;
}
搭配if else使用,当然也可以用if else if else 这样你就可以有三个选择,以此类推。
#include<stdio.h>
int main()
{
int xuanze = 0;
printf("要不要这样?(1/0)");
scanf("%d", &xuanze);
if(xuanze == 1)
{
prinf("这样好\n");
}
else if(xuanze==0)
{
printf("这样不好\n");
}
else
{
printf("你还没有做出选择");
}
return 0;
}
四、循环语句
生活中,我们可能日复一日的做某一件事情,当达到一种程度,或者出现一些特例,就会跳出这个日复一日的事情,这样理解起来就是循环
循环有三种,for循环,while循环,和do while循环,这里我们先讲while循环。
#include <stdio.h>
int main()
{
printf("买彩票\n");
int line = 0;
while(line<=20000)
{
line++;
printf("接着买\n");
}
if(line>20000)
printf("终于中奖了”);
return 0;
}
while(判断条件)当循环循环一直循环满足你设置的循环条件时就会跳出循环,每循环一次判断一次。
这里举个简单的例子,假如我们每天都买彩票,但是每天都不中奖,彩票站看你太可怜给你设置了个条件,当你的彩票累积到20000张的时候必中奖,这时候我们用选择语句去实现就不太现实,那你得敲几万行的代码,这时候我们就可以用循环语句来解决这种问题。(当然这是程序中,现实中不可以模仿哦)
五、函数
函数的特点就是简化代码,代码复用。
当我们需要用到程序中的一个功能时,就比如两个数相加
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个数:>");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
我们可以这样来实现,但是如果我们还要用两个数相加而且不止一次的时候,我们怎么办?
总不能这样一行一行的敲出来吧,这样即累着了你也累着了计算机。这时候C语言中的函数,就可以代替这几行代码进行运算,并且可以反复利用。
#include <stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("输入两个操作数:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}
这里我们定义了一个Add函数,他的作用就是两个数相加,这样用起来两个数相加的功能时,我们就可以直接引用这个函数,非常的好用。
注意函数的用法:返回值类型 函数名(形式参数,形式参数) { 函数体}
当我们需要调用函数的时候就可以直接将需要相加的两个数传入函数里进行计算,函数会直接返回给你结果,非常的好用。
六、数组
1.数组的概念
当我们需要将数据存储到计算机内,我们可以 int a=xx;int b=xxx;依次类推,但当我们需要存储的数据过多时,再用这种方式就很耗时耗力,这时候我们的C语言又给我提供了一直比较简单的可以存储同一类型的多个数据的办法,他就是数组。
举个栗子:存储1-10的数 int arr[10] = {1,2,3,4,5,6,7,8,9,10};我们就可以一口气存储相同类型的数,是不是很方便?对于数组的使用和进阶玩法,我们这里不多赘述,以后会讲到,这里主要介绍一下数组的作用和使用方法注意事项。
2.数组的下标
C语言规定,数组的下标时从0开始的,这就说明如果我们想引用第一个数,那么他的表达的方式就是 arr[0],当引用第二个数据时就是arr[1],依次类推,最后一个数据就是arr[9]。不要问我啥不从1开始,问就是他就是这么规定的!!
3.数组的使用
#include <stdio.h>
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
while(i<10)
{
printf("%d ", arr[i]);
i++;
}
printf("\n");
return 0;
}
这里的作用就是输出数组的十个数,相对来说应该不难理解。
总结
本节主要讲了变量与常量的内容与概念,以及转义字符的用法,C语言中注释方法,选择语句和对数组和循环和函数的初步认识。