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

常量

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

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

字面常量

可以认为:就是一简简单单的数值或字符。
字面常量
代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

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

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

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

在这里插入图片描述
不可修改:
在这里插入图片描述

代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

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定义的标识符常量:
#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定义的标识符常量是常量?
在这里插入图片描述

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

枚举常量

举例:

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. 代码中有不需要的代码可以直接删除,也可以注释掉。
  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语句
if--else
代码实现:

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

运行截图:
1
在这里插入图片描述

循坏语句

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

在这里插入图片描述
代码实现:

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

运行截图:
while

函数

什么是函数:图解–>
函数

加法函数:

// 实现加法函数
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;
}

运行测试截图:
Add函数

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

数组

数组的定义

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节课,把自己所习记录下来分享,感谢你们的观看与点评,一起加油努力!
在这里插入图片描述

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

The_wind__rises

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值