目录
- 常量
- 字面常量
- const修饰的常 变量(需要开辟空间,向内存申请空间)
- #define定义的标识符常量(不需要开辟空间,不向内存申请空间)
- 枚举常量
- 字符串
- 转义字符
- 转义字符表如下
- 三字母词
- 一道笔试题:
- 注释
- C中两种注释方法
- 选择语句
- 循坏语句
- 函数
- 数组
- 数组的定义
- 数组的下标
- 数组的使用
- 写在最后
C语言中的常量与变量的定义形式有所差异
常量的定义形式有:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
//字面常量:
72;
3.1415926535;
'C'; //字符常量
"aabbcc";//字符串常量
//--字面常量可以理解为:就是一个简简单单的数值。
return 0;
}
变量:可以理解为一个空间,用来储存数值或字符。
则const修饰的常变量就可以理解为:只是把某个值锁定在一个空间里,但是并没有把整个空间变成数值或字符(具有常属性的变量)。
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
// 变量--可以被修改
int a = 2;
a = 7;//把7赋给a(把a从2改变成了7)
printf("%d\n", a);
//--变量可以理解为:是一个空间,用来容纳常量(数值)。
// const 修饰的常 变量
const float e = 2.71828;
printf("%f\n", e);
// 这里的e是 const 修饰的常变量,本质是个变量,是不可以被直接修改的!!!
// 例如:
//e = 2.72; (error)--这里是不允许被直接修改的
// --const修饰的常 变量可以理解为:只是把某个值锁定在在个空间里,但是并没有把空间变成值。
return 0;
}
如何证明const修饰的变量是变量?
指定数组大小的量必须是常量,可以用这个来检验。
指定数组的大小的量必须试是个常量:
代码:
//#define定义的标识符常量:
#define STR "qwert"
int main()
{
#define G 9.8
printf("%s\n", STR);
int g = 0;
g = G;
printf("%.1f\n", g);
return 0;
}
指定数组大小的时候没有报错
举例:
enum Color // enum是枚举类型
{ // 定义了一个枚举类型 Color--三原色
//Color的所有可能取值:
RED, //--0 用逗号分隔
GREEN, // --1 创建时会给每个枚举常量编号
BLUE//--2 最后一个枚举常量结尾不用标点
};
enum Time
{
// 枚举常量
Morning, //--0
Afternoon, //--1
Night // --2
};
int main()
{
//演示
int a = 2;
enum Color c = GREEN; //c是创建的一个enum Color类型的变量,向内存申请了一个空间
// 创建变量的本质:是向内存申请一块空间
//给这个空间c赋了一个GREEN的值(绿色)
return 0;
}
"Hello,World!"
这种由双引号(Double Quote)引起来的一串字符称为字符串。
注:
字符串的结束标志是一个\0 的转义字符,遇到就算该字符串结束了。在计算字符串长度的时候\0 是结束标志,不算作字符串内容。
例如:
int main()
{
printf("Good good study");
printf("day day up\n");
char car[] = {'G','o','o','d','\0'}; // 有'\0'
char carr[] = {'s','t','u','d','y'}; // 没有'\0'
printf("%s\n", car);
printf("%s\n", carr);
return 0;
}
strlen()找到’\0’就停止,这里没有’\0’,一直往下找,直到找到为止,所以已经是越界访问了
'\0’的重要性!!!
案例:我们要在屏幕上打印一个文件夹的位置:D:\ts2019\ning.c
int main()
{
printf("D:\ts2019\ning.c");
return 0;
}
打印的结果:
为什么是这样呢?
上面的 ‘\t’ 是个转义字符,作用是水平制表(跳到下一个Tab),‘\n’ 是换行
转义字符就是:转变意思的字符。
(转载于https://baike.baidu.com/item/%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6)
注意:
1. 区分,斜杠:“/” 与 反斜杠:“\” ,此处不可互换
2. \xhh 十六进制转义不限制字符个数 ‘\x000000000000F’ == ‘\xF’
int main()
{
//三字母词
// 在早期的编译器下:\??) -- > ] ( \??) 会被解析为 ] )
// 在早期的编译器下:\??( -- > [ ( \??) 会被解析为 ] )
return 0;
}
//程序输出什么?
int main()
{
printf("%d\n", strlen("c:\test\628\test.c"));
return 0;
}
解释: \62 被解析为一个八进制数化为十进制数的数值的对应的ASCII码的字符(八进制)62–>(十进制)50,对应的ASCII字符为数字2、\t被解析为水平制表符。
运行结果:14
注意:不是 \628 被解析为一个八进制数,因为八进制数只能出现0~7.
ASCII码表:(转载于http://www.asciima.com/ascii/12.html)
- 代码中有不需要的代码可以直接删除,也可以注释掉。
- 代码中有些代码比较难懂,可以加一下注释文字。
- 多写注释对别人看你的代码和自己加深理解都有用!
(1)C语言风格式注释
(2)C++风格式注释
int func1(int x, int y)
{
return x * y;
}
/* (1)C语言风格注释
int func2(int x, int y)
{
return x / y;
}
*/
int main()
{
// (2) C++注释风格
// int e = 7;
// int b = 2;
// 调用func1函数
printf("%d\n", func1(2, 3) );
return 0;
}
两种风格对比:
C语言风格的注释 : /* xxxxxx */
缺陷:不能嵌套注释
C++风格的注释: //xxxxxxxx
可以注释一行也可以注释多行
生活,你常常面临许多选择。选择好好学习,拥有美好未来;或者懒惰不学习,回家种田,这就是选择!
// 实现if else选择语句
int main()
{
printf("我要学习\n");
printf("请选择:1.坚持努力 0.懒惰放弃\n");
int Learning = 0;
scanf("%d", &Learning);
if (Learning == 1)
{
printf("坚持努力:你会有高薪工作和美好未来!\n");
}
else
{
printf("懒惰放弃:回家种田!\n");
}
return 0;
}
生活中有些事必须反复地做,比如日复一日的学习、日复一日的工作,这就是循环。
// 实现循环语句(while)
int main()
{
printf("开始学习!\n");
int day = 0;
while (day < 4500)
{
printf("厚积,继续努力认真学习!\n");
day++;
}
if (day >= 4500)
{
printf("厉害了,走上人生巅峰!");
}
return 0;
}
加法函数:
// 实现加法函数
int Add(int x, int y) // x、y 为函数的形式参数,用来接收传递过来的值
{
return (x + y); // 将 (x+y) 返回去
}
int main()
{
int a = 0;
int b = 0;
int retu = 0;
printf("请输入两个操作数:>\n");
scanf("%d%d", &a, &b);
retu = Add(a, b); //给函数传递两个实际参数过去,在用retu接受返回值
printf("%d + %d = %d\n", a, b, retu);
return 0;
}
函数的特点就是简化代码,代码可以反复使用。
C语言中给了数组的定义:一组相同类型元素的集合
格式:元素类型 数组名[ 长度(只能放常量) ] = {x,y… }
代码:
int array[7] = {1,2,3,4,5,6,7};//定义一个整形数组,里面可以存放7个元素
C语言规定:数组的每个元素都有一个下标,下标是从 0 开始的。
数组可以通过下标来访问的。
如:
int array[7] = {1,2,3,4,5,6,7};//定义一个整形数组,里面可以存放7个元素
//数组元素7个,每个元素都有下标,下标从0开始
// 数组的使用
int main()
{
int i = 0;
int array[7] = { 1,2,3,4,5,6,7 };
for (i = 0; i < 7; i++) // <7 所以只能0~6 刚刚好可以打印完全部数组元素
{
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
【本人新手学习C语言,菜鸟一个。如有写的错误与不妥,欢迎指正批评!】
认识C语言的第2节课,把自己所习记录下来分享,感谢你们的观看与点评,一起加油努力!