初见C语言——C语言学习02

目录

  • 常量
    • 字面常量
    • const修饰的常 变量(需要开辟空间,向内存申请空间)
    • #define定义的标识符常量(不需要开辟空间,不向内存申请空间)
    • 枚举常量
  • 字符串
  • 转义字符
    • 转义字符表如下
      • 三字母词
      • 一道笔试题:
  • 注释
    • C中两种注释方法
  • 选择语句
  • 循坏语句
  • 函数
  • 数组
    • 数组的定义
    • 数组的下标
    • 数组的使用
  • 写在最后

常量

C语言中的常量与变量的定义形式有所差异
常量的定义形式有:

  • 字面常量(简简单单的一个数值)
  • const 修饰的变量(具有常量的属性,但本质是变量,不能被直接修改)
  • #define 定义的标识符常量
  • 枚举常量

字面常量

可以认为:就是一简简单单的数值或字符。
初见C语言——C语言学习02_第1张图片
代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include 

int main()
{
	//字面常量:
	72;
	3.1415926535;
	'C'; //字符常量
	"aabbcc";//字符串常量
	//--字面常量可以理解为:就是一个简简单单的数值。
	return 0}

const修饰的常 变量(需要开辟空间,向内存申请空间)

变量:可以理解为一个空间,用来储存数值或字符。
则const修饰的常变量就可以理解为:只是把某个值锁定在一个空间里,但是并没有把整个空间变成数值或字符(具有常属性的变量)。

初见C语言——C语言学习02_第2张图片
不可修改:
初见C语言——C语言学习02_第3张图片

代码:

#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修饰的变量是变量?
指定数组大小的量必须是常量,可以用这个来检验。
初见C语言——C语言学习02_第4张图片指定数组的大小的量必须试是个常量:

#define定义的标识符常量(不需要开辟空间,不向内存申请空间)

初见C语言——C语言学习02_第5张图片

代码:

//#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;
}

如何证明是#define定义的标识符常量是常量?
初见C语言——C语言学习02_第6张图片

指定数组大小的时候没有报错

枚举常量

举例:

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;
}

打印演示:
初见C语言——C语言学习02_第7张图片

不能修改:
初见C语言——C语言学习02_第8张图片
创建变量的本质:是向内存申请一块空间

字符串

"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;
}

打印截图:(对比)
初见C语言——C语言学习02_第9张图片
初见C语言——C语言学习02_第10张图片

strlen()找到’\0’就停止,这里没有’\0’,一直往下找,直到找到为止,所以已经是越界访问了
'\0’的重要性!!!

转义字符

案例:我们要在屏幕上打印一个文件夹的位置:D:\ts2019\ning.c

int main()
{
	printf("D:\ts2019\ning.c");
	return 0;
}

打印的结果:
初见C语言——C语言学习02_第11张图片
为什么是这样呢?
上面的 ‘\t’ 是个转义字符,作用是水平制表(跳到下一个Tab),‘\n’ 是换行
转义字符就是:转变意思的字符。

转义字符表如下

(转载于https://baike.baidu.com/item/%E8%BD%AC%E4%B9%89%E5%AD%97%E7%AC%A6)
初见C语言——C语言学习02_第12张图片
注意:
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.

运行结果:
初见C语言——C语言学习02_第13张图片

ASCII码表:(转载于http://www.asciima.com/ascii/12.html)
初见C语言——C语言学习02_第14张图片

注释

  1. 代码中有不需要的代码可以直接删除,也可以注释掉。
  2. 代码中有些代码比较难懂,可以加一下注释文字。
  3. 多写注释对别人看你的代码和自己加深理解都有用!

C中两种注释方法

(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语句
初见C语言——C语言学习02_第15张图片
代码实现:

// 实现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;
}

运行截图:
初见C语言——C语言学习02_第16张图片
初见C语言——C语言学习02_第17张图片

循坏语句

生活中有些事必须反复地做,比如日复一日的学习、日复一日的工作,这就是循环。

初见C语言——C语言学习02_第18张图片
代码实现:

// 实现循环语句(while)
int main()
{
	printf("开始学习!\n");
	int day = 0;
	while (day < 4500)
	{
		printf("厚积,继续努力认真学习!\n");
		day++;
	}
	if (day >= 4500)
	{
		printf("厉害了,走上人生巅峰!");
	}
	return 0;
}

运行截图:
初见C语言——C语言学习02_第19张图片

函数

什么是函数:图解–>
初见C语言——C语言学习02_第20张图片

加法函数:

// 实现加法函数
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语言——C语言学习02_第21张图片

函数的特点就是简化代码,代码可以反复使用。

数组

数组的定义

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语言学习02_第22张图片

写在最后

【本人新手学习C语言,菜鸟一个。如有写的错误与不妥,欢迎指正批评!】
认识C语言的第2节课,把自己所习记录下来分享,感谢你们的观看与点评,一起加油努力!
初见C语言——C语言学习02_第23张图片

你可能感兴趣的:(C语言,学习,c语言)