IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 手写C语言之数据类型-字符串-转义字符-注释介绍及实战演练(02) -> 正文阅读

[C++知识库]手写C语言之数据类型-字符串-转义字符-注释介绍及实战演练(02)

目录

C语言的数据类型

类型大小

计算机中单位

常量

变量的分类

局部变量和全局变量

变量的作用域和生命周期

字符串-转义字符-注释

字符串

总结

转义字符

注释

每文一语


C语言的数据类型

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

数据类型在编程中是非常重要的一个基本知识,尤其是在C语言中,每一行代码的编写和调用都必须要符合数据类型原则,比如你需要存储一个变量,叫做常量,那么就会有对应的规则。

类型大小

sizeof计算这些关键字变量的字节

那么什么是字节呢?

计算机中单位

计算机识别二进制的,0和1,所有的代码最终都会被编译成机器码,被内部的编译器进行解读

八进制:只含0-7;十进制:只含0-9

bit——比特位(最小的单位)

byte——字节(1个字节=8个比特位)

1Byte=8bit
1k=1024Byte
1M=1024K
1G=1024M
1T=1024G
1P=1024T

一个int就是32个比特位:4*8,通过了解这些这些类型,可以在利用类型的时候提高类型的利用率。

常量

C语言中的常量分为以下以下几种:

字面常量

//字面常量演示
	3.14;//字面常量
	1000;//字面常量

const 修饰的常变量

    //const 修饰的常变量
	const float pai = 3.14f; //这里的pai是const修饰的常变量
	pai = 5.14;//是不能直接修改的!

pai 被称为 const 修饰的常变量, const 修饰的常变量在C语言中只是在语法层面限制了
变量 pai 不能直接被改变,但是 pai 本质上还是一个变量的,所以叫常变量。

我们可以看到在VS编辑器里面直接就,显示报错了,因为使用const 修饰的常变量是无法修改的,这里直接报错警告了。

#define 定义的标识符常量

	//#define的标识符常量 演示
	#define MAX 100
	printf("max = %d\n", MAX);

枚举常量

enum Sex
{
	MALE,
	FEMALE,
	SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量

枚举常量:使用enum 名字 (枚举常量的默认是从0开始,依次向下递增1的

一些经常不可变的数据,我们称之为常量;能够被改变的数据,我们称之为变量。

案例:

比如王小王-123的博客地址是不可变的一个数据,那么我们就可以定义它为一个常量,通常,常量的定义方法是:#define 常量名字;

#include<stdio.h>
#define URL "https://blog.csdn.net/weixin_47723732/"

int main()
{
	char name[] = "王小王-123";
	float age = 1.9f;
	double fs = 2.8;
	int fw = 60;
	printf("我是%s,这是我的博客地址:%s,我的码龄是%f,目前粉丝有:%f万+,博客访问量是:%d万+\n",name,URL,age,fs,fw);
	return 0;
}

类型之间的调用以及基本的转换需要熟悉,这里在进行字符串的定义的时候,采用的数组形式,因为C语言中没有字符串类型,只能通过数组进行定义。

?char类型只可以存储一个字节(8bit),故我们在调用的时候也要注意,使用单引号进行存储,不可以使用双引号。以及在存储浮点数类型,需要在数字后面加一个 f 作为标识。

变量的分类

局部变量和全局变量

上面的局部变量global变量的定义其实没有什么问题的

当局部变量和全局变量同名的时候,局部变量优先使用

变量的作用域和生命周期

作用域

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用

而限定这个名字的可用性的代码范围就是这个名字的作用域。

1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。

生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。

字符串-转义字符-注释

字符串

在Python语言中,我们总是不会太在乎引号到底是双引号还是单引号,因为都可以用,而且使用起来比较的方便。但是在C语言中确实两种不一样的概念,比如:这种由双引号(Double Quote)引起来的一串字符称为字符串字面值(String Literal),或者简称字符串。而单引号所包裹的是一个字符。

#include <stdio.h>

int main()
{
	
	printf("你好,王小王-123!\n");
	printf('我');
	return 0;
}

?既然,我们知道了,单引号只可以存放一个字符,那么我们就放入了一个字,为什么程序不不不报错,但是却没有打印出来任何信息呢?

因为无论是java还是C#还是C语言,使用printf都是格式化字符串,当然要用双引号,单引号包括的是字符,双引号才是包括字符串。

单引号在字符常量时使用,表示单个字符。

当在单引号中出现两个及以上字符时或没有字符时,编译出错。

"A" 表示字符串,该字符串只有1个大写字母A组成,占用2个字节空间,每个字符串末尾自动会加上一个空字符 '\0'

空字符常量使用转义符号 '\0'表示,空白字符串使用双引号表示 ""

char c = 'aA'; // 编译出错,单引号只能是一个字符

如果在这里存放一个汉字,从数量上看虽然是一个,但是一个汉字也是用2个字节存放的,所以也会编译出错

char c = ''; // 单引号中间没有任何字符时,编译出错

?输出单引号,注意一定要使用转义字符,如果不使用转义字符,就会被系统是被为前面的单引号所使用,这样就会出现语法错误。

那么如果我们不使用单引号,我们需要使用双引号里面存放单引号,最终输出呢?那么此时我们就需要用到数组存放字符串的知识了。

总结

(1)单引号括起来的单个字符代表整数
(2)双引号括起来的字符代表字符指针
(3)C编译器接受字符和字符串的比较,无任何意义
(4)编译器允许字符串对字符变量赋值,只能得到错误

字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串
内容。

转义字符

#include <stdio.h>
int main()
{
printf("c:\code\test.c\n");
return 0;
}

\c 本身不是转义字符,所以正常输出字符c, 如果是 \\c,则是将 \c 作为一个整体输出。

常见的转义字符

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\'用于表示字符常量'
\“用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符。
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1~3个八进制的数字。 如: \130 X
\xdddd表示2个十六进制数字。 如: \x30 0

本身有16个字符的,结果打印出来只有14个字符,这是因为转义字符导致的,将\t解析为一个字符了 。

注释

1. 代码中有不需要的代码可以直接删除,也可以注释掉
2. 代码中有些代码比较难懂,可以加一下注释文字
?

#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
/*C语言风格注释
int Sub(int x, int y)
{
return x-y;
}
*/
int main()
{
//C++注释风格
//int a = 10;
//调用Add函数,完成加法
printf("%d\n", Add(1, 2));
return 0;
}

注释有两种风格:

C语言风格的注释 /*xxxxxx*/
缺陷:不能嵌套注释

C++风格的注释 //xxxxxxxx
可以注释一行也可以注释多行

每文一语

业精于勤荒于嬉!

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-23 10:41:58  更:2022-04-23 10:42:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/3 8:01:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码