C语言学习笔记-P1 初识C语言(2)

C语言学习笔记-P1 初识C语言(2)

上一篇文章学习了什么是C语言,第一个C语言程序“Hello world”,数据类型:

char-//字符数据类型
short-//短整型
int-//整形
long-//长整型
long long-//更长整形
float-//单精度浮点数
double-//双精度浮点数)

学完了变量和常量的周期。我们再将继续往下学习,从常量开始学习吧。

一、常量

C语言中的常量和变量的定义形式有所差异。
C语言中的常量分为以下几种:

  1. 字面常量
  2. const修饰的常变量
  3. #define定义的标示符常量
  4. 全新的 KaTeX数学公式 语法;
  5. 枚举常量

1、字面常量

顾名思义,它就是我们字面上的1、2、3…且是不可改变的,比如3,它在我们生活中就是表示一个却的数量。

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#pragma warning(disable:6031)
#include<stdio.h>

int main()
{
   
	int unm = 4;//把一个数赋值给一个变量
	3 = 5;//但是把一值赋给一个字面常量就不可以的,因为它改变不了

	return 0;
}

上面的代码运行会报错,因为5不能赋值给3。

2、const修饰的常变量

const指的是常量属性。作用是限制变量num,使其不能再改变;例如:

int main()
{
   
	//const - 常属性
	const int num = 4;//unm这个变量不能再改变,这里只能为4了
	//const修饰的常变量
	printf("%d\n", num);
	return 0;
}

此时这里的unm变量只能为4,赋其他值会报错。我们再来看一下它为什么讲常量,又叫变量。这是因为unm本质属性还是变量,只不过具有了常属性而已,就像一个外国人拿到中国绿卡,但他相貌还是外国人。所以叫常变量。值得注意的是:虽然说用const修饰了num这个变量,它具有常属性,但依然不能把它当作常量来用。下面就是错误的例子:

int main()
{
   

	//const - 常属性
	const int num = 10;//num是变量,但是又有常属性,所以我们说num是常变量
	int arr[num] = {
    0 };//这一句是会报错的
		//const int num = 4;//unm这个变量不能再改变,这里只能为4了
	const修饰的常变量
	//printf("%d\n", num);
	return 0;
}

3、#define定义的标识符常量

它则是定义宏,宏做文本替换,是为了方便阅读。其格式如下:

#define[空格]标识符[空格]内容

#define MAX 10
//#define 定义的标识符常量
int main()
{
   
	int arr[MAX] = {
   0};
	printf("%d\n", MAX);
	return 0;
}

3、枚举常量

枚举,中文解释为一一列举。生活中的一些值可以被我们一一列举的,比如说三原色有:。我们看下面代码举例:

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#pragma warning(disable:6031)
#include<stdio.h>

//4-枚举常量 
// 枚举:一一列举,生活中总是有可以一一列举的值
//三原色:红、黄、蓝
enum Color
{
   
	RED,    //红
	YELLOW,  //黄
	BLUE   //蓝
};
//RED YELLOW BULE - 枚举常量 放在上面的大括号里就是枚举常量
int main()
{
   
	enum Color color = RED;//color为通过枚举类型所创建出来的变量
	color = YELLOW;//这里可正常运行
	BLUE = 6; //这一句就不可以运行
	//printf("%d\n", RED); //值的大小默认是0
	//printf("%d\n", YELLOW);//值的大小默认是1
	//printf("%d\n", BLUE);//值的大小默认是2
	return 0;
}

这里我们把我们要一一列举的量放在大括号里,这时就称为枚举常量。而且它的值也不能改,简单的说,枚举常量不能改,但是通过枚举类似所创建出来的变量color是可以改变的。

二、字符串+转义字符+注释

1、字符串

生活中的身份证,电话号码等很多可能的字符串信息要存储,那么C语言中是如何表示字符的呢?
答案是,这种由双引号引起来的一串字符称为字符串字面值,或者简称字符串。
注:字符串的结束标志是一个\0的转义字符。在计算字符串长度的时候\0是结束标志,不算字符串内容。
简单地说字符串其实就是有双引号引起的一串字符。如下示例代码:

#define  _CRT_SECURE_NO_WARNINGS  //解决C4996的错误
#pragma warning(disable:6031)
#include<stdio.h>
//二、字符串
int main()
{
   
	char arr1[] = "abc"; //数组
	char arr2[] = {
   'a', 'b', 'c'};
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}

当我们运行后结果会怎么样呢?如下图:
运行上面代码的结果图
我们看到arr1输出为abc,arr2输出为abc烫烫烫蘟bc。为什么?
现在试着去调试这些代码,按下F10后回调出监视窗口,如下图:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小马快跑~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值