目录
一、变量、常量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,
变得值C语言中用变量来表示(变量必须先定义后使用)。
1.1定义变量的方法
变量的定义可以指定一个数据类型,包含了这种类型的一个或多个变量列表。
例:
int age=100;
float weight=45.5f;
char ch='w';
1.2 变量的命名
-
只能由字母(包括大写和小写)、数字和下划线( _ )组成。
-
不能以数字开头。
-
长度不能超过63个字符。
-
变量名中区分大小写的。
-
变量名不能使用关键字。
1.3 变量的分类
- 局部变量
- 全局变量
#include <stdio.h> int global = 2019;//全局变量 int main() { int local = 2018;//局部变量 //下面定义的global会不会有问题? int global = 2020;//局部变量 printf("global = %d\n", global); return 0; }
总结:
上面的局部变量global变量的定义其实没有什么问题的!
当局部变量和全局变量同名的时候,局部变量优先使用
1.4变量的使用
#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;
}
输入输出语句——scanf和printf
- 库函数 - C语言的编译器提供的现成的函数,直接可以使用
- scanf的作用是输入数据,数据从键盘读取到内存中
- printf的作业是输出数据,数据从内存打印(输出)到屏幕上
- 使用的时候要包含头文件stdio.h
格式符
- %c - 字符
- %d - 整型
- %s - 字符串
- %f - float
- %lf - double
- %p - 地址的打印
例:
int main()
{
int a = 0;
scanf("%d", &a);
printf("%d", a);
char ch = 0;
scanf("%c", &ch);
printf("%c", ch);
return 0;
}
1.5变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
-
局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
-
全局变量的生命周期是:整个程序的生命周期。
1.6 常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
- 字面常量
3.14;//字面常量 1000;//字面常量
- const 修饰的常变量
int main() { //常属性 //这里的a是具有常属性的,不能改变,但是本质上还是变量 const int a = 3; printf("%d\n", a); a = 10; //error(不能改变) printf("%d\n", a); 数组 const int n = 10; int arr[n]; int arr[n];//error(本质上还是变量) return 0; }
- #define 定义的标识符常量
#define 定义的标识符常量 #define SIZE 10 #define MAX 10000 #define CH 'W' int main() { //10; int a = SIZE; int arr[SIZE] = {0};//√,SIZE为常量10 printf("%c", CH); return 0; }
- 枚举常量
//枚举常量 //枚举 - 一一列举 //生活中有些值是可以一一列举 // 性别:男、女、保密 // 三原色:red green blue // 血型: enum SEX { //列出了枚举类型enum SEX的可能取值 //枚举常量 MALE, FEMALE, SECRET };//这里注意加分号 int main() { enum SEX s = FEMALE; printf("%d\n", MALE); //0 printf("%d\n", FEMALE);//1 printf("%d\n", SECRET);//2 return 0; }
二、字符串+转义字符
2.1字符串
代码如下(示例):
"hello world.\n"
这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。
注:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。
2.2转义字符
转义字符 - 转变原来意思
例:
\\ \字符 \" "字符 \? ?字符 \a 警告铃声 \b 退格键 \f 换页符 \n 换行符 \ooo 一到三位八进制数 \ohh 一到多个数字的十六进制数
#include <stdio.h>
int main()
{
printf("%c\n", '\'');//在屏幕上打印一个单引号
printf("%s\n", "\"");//在屏幕上打印一个双引号
printf("%c", '\133');//8进制的130 转换成10进制后得到88,把88作为ASCII值代码的字符
return 0;
}
三.注释
- 代码中有不需要的代码可以直接删除,也可以注释掉
- 代码中有些代码比较难懂,可以加一下注释文字
注释有两种风格:
C语言风格的注释 /*xxxxxx*/
缺陷:不能嵌套注释
C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行