初始C语言——————青铜的进阶之路

简介: 初始C语言——————青铜的进阶之路

一、数据类型

1)、数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量储存所占用的空间。

C中的类型有以下几种

C语言中的整数型和数学中的整数是一样的,基本整型简称整型,用int表示;短整型用short int表示,长整型用long int表示。那为什么要分为long int 和short int呢??这就是要说道内存了,内存和硬盘相比容量是很小的,所以要考虑内存节约的问题。比如数字10存放在4个字节的int就够了,但如果存放在long int(8个字节)就显得浪费空间了。

说到内存,每个数据类型都有它本身占多大的字节数

1byte(字节)=8个bit(位)

1 KB = 1024Byte(字节)

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

二、常量

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

· 字面常量

·const修饰的常变量

·#define 定义的标识符常量

·枚举常量

(1)、字面常量的种类:

1)、整型数值 如  22 33

2)、浮点型  如double类型的33.3

3)、字符串类型

4)、字符型

我们创建char类型的数组ch1和ch2,里面存放这abcdef的字符和字符串,我们输出会发现ch1还有中文乱码

我们想一想,这是为什么呢???所以我使用了调试,我们发现ch2中多了一个\0,我们就知道了\0是字符型结束的标志 ,而ch1出现了中文就可以理解为我们向计算机申请了一块内存,而ch1内存的后面我们不确定是什么,而ch2字符串后面是\0,当在不同的编译环境下,ch1就会形成不同的结果。

当然,我们也可以通过使用strlen函数来证明

这时就说明了由于ch1内存后面不知道什么时候遇到\0,所以是随机值,而ch2中有\0,所以打印出来的个数就是6

(2)、变量的作用域和声明周期

作用域:  所谓作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在所有代码文件中使用,有些变量只能在当前的文件中使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。


比如我们定义了全局变量a和局部变量a,我们在有效的区域中我们优先使用的是局部变量,{}就是我们的局部变量的作用域,出了{},就是全局变量起了作用


生命周期:即指的是程序在运行过程中,变量在内存中的从创建到销毁的生存期。

三、转义字符

1)、既然提到了字符,就不得不讲转义字符,转义字符就是转变意思。


转义字符(Escape Character)是指在ASCII码和Unicode等字符集中的无法被键盘录入的字符被当作特殊用途而需要转换回它原来的意义的字符。而转义字符转义是指字符已经被转换了意义。

比如,当我们输出‘\a’,电脑就有叮的一声,代码如下

int main()
{
  printf("\a");
  return 0;
}

通过这个输出这个例子,我们就可以发现\t  \328是转义字符,算一个字符,所以输出的结果是14

四、操作符

1)、算数操作符

+ - *  /  %

在数学中x是乘法的意思,而在计算机中*是乘法的意思,/是除法的意思,得到是除数,%是取余,得到的是余数

比如我们定义了变量a和b,用a/b,和a%b分别得到的就是他们的除数和余数

2)、位操作符

<<   左移操作符

>>   右移操作符

ps:移动的只能是整数,不能使用浮点数

那么我们就不得不讲一讲原码,补码,反码了


为什么讲这个呢,因为在计算机中,一个整数在内存中存储的是补码!!!

我们定义了一个int类型的a变量,我们使用<<左操作符,就是a向左移动2位,就得到了a=6


又比如我们定义int类型的a变零,使用右操作符,就是补码向右移动2位,左边补0,就可以得知a>>1就是4

小故事:

程序猿:一般来说,一个寝室的长度应该是1~2个字节,因为里面一般住4~8个2b。

最后的附上一段话:

“选一个方向,定一个时间;剩下的只管努力与坚持,时间会给我们最后的答案”



相关文章
|
6月前
|
C语言
指针进阶(C语言终)
指针进阶(C语言终)
|
6月前
|
数据库 C语言
C语言进阶 文件操作知识(上)
C语言进阶 文件操作知识(上)
42 3
|
6月前
|
存储 C语言
C语言进阶 文件操作知识(下)
C语言进阶 文件操作知识(下)
40 2
|
6月前
|
存储 编译器 数据库
【再识C进阶5(上)】详细介绍C语言文件操作——文件是用于存储数据
【再识C进阶5(上)】详细介绍C语言文件操作——文件是用于存储数据
|
7月前
|
编译器 C语言 C++
从C语言到C++_21(模板进阶+array)+相关笔试题(下)
从C语言到C++_21(模板进阶+array)+相关笔试题
54 2
|
7月前
|
C语言
C语言进阶:进阶指针(下)
C语言进阶:进阶指针(下)
51 2
|
6月前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
53 0
|
7月前
|
C语言
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(二)
我们可以通过创建并定义符号常量NUMBER,来作为判断是否胜利的标准。如三子棋中,令NUMBER为3,则这八个方向中有任意一个方向达成3子连珠,则连珠的这个棋子所代表的玩家获胜。
83 1
|
7月前
|
算法 C语言 C++
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(一)
三子棋游戏设计的核心是对二维数组的把握和运用。
98 1
|
7月前
|
C语言
C语言进阶:指针的进阶(上)
C语言进阶:指针的进阶(上)
67 1