C语言
文章平均质量分 77
C语言学习笔记
IT阳晨。
仅此一生,努力上进。
展开
-
【C语言】C语言小项目—贪吃蛇
贪吃蛇最为一款游戏,它使通过人操作键盘控制蛇身走位实现游戏效果的,所以按键响应必然少不了。在我们以前接触过的关于C语言按键响应方面的东西中,我们知道,C语言自带的 scanfscanfscanf 、 getchargetchargetchar 和 getsgetsgets 等库函数接收键盘输入的话,必须按下相应的键,再按下回车才能完成接收,很显然,这对于一款游戏是很不友好的,所以我们就要通过 ncursencursencurse 库来引入比较实用的按键响应功能,它封装了一个库,不需要按下回车,就能够接收原创 2022-07-06 14:45:28 · 2841 阅读 · 0 评论 -
【C语言】typedef关键字
typedeftypedeftypedef 关键字是用来给其他变量类型改名的关键字,C语言允许用户使用 typedeftypedeftypedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称、数组类型名称、指针类型名称与用户自定义的结构型名称、共用型名称、枚举型名称等。一旦用户在程序中定义了自己的数据类型名称,就可以在该程序中用自己的数据类型名称来定义变量的类型、数组的类型、指针变量的类型与函数的类型等。定义如下:案例:运行结果: 给结构体变量起名字,取代了原创 2022-07-01 17:08:13 · 947 阅读 · 0 评论 -
【C语言】枚举类型
如果一个变量只有几种可能的值,比如星期几?这时候我们就可以用枚举类型来定义。列表中的名字,可以自己定义,无需像变量一样去申请。C编译器把他当成常量处理,也称为枚举常量。定义:运行结果:不指定枚举元素的值,枚举元素从 000 开始依次排序。2. 可以指定列表中枚举数的值:运行结果:可以看出,指定枚举元素的值以后,被指定的元素后面的元素从它开始依次排序,而被指定的元素前面的元素还是从 000 开始排序。...原创 2022-07-01 15:58:12 · 203 阅读 · 0 评论 -
【C语言】联合体共用体
联合体,又叫共用体,它和结构体相似,定义如下:注意几点:可以看一幅图:我们打印一下结构体和共用体的大小和其中元素的地址:运行结果:由此可见,结构体的大小是所有元素大小之和,而联合体大小则是最大元素 doubledoubledouble 。结构体中元素的地址是按顺序独立排列的,而联合体中元素的地址是相同的。 在上面我们提到,共用体所有元素占同一片内存空间,所以它元素赋值会被覆盖。下面我们实际操作一下看看:运行结果:由此可见,元素每一次被赋值,联合体中元素的值都会发生改变。 由原创 2022-07-01 14:54:16 · 1124 阅读 · 0 评论 -
【C语言】结构体
在以前我们用到的变量都是分散的数据,比如整型数、浮点型数、字符串是分散的数据表示,有时候我们需要用很多类型的数据表示一个整体,比如学生信息:学号、姓名、性别、年龄、分数和地址。这个时候我们就需要用不同的数据类型表示一个整体。 类比数组,数组是一样的数据集合,如果是元素类型不同的数据集合,就要用到结构体。结构体的定义为:需要注意几点:还有一种方法定义结构体,即在声明的同时定义变量:(少用,不推荐)结构体变量的定义和使用: 以上是对结构体变量初始化的过程,但是通过点运算符一个一个的赋值稍许繁琐,原创 2022-07-01 11:10:44 · 126 阅读 · 0 评论 -
【C语言】字符串
关字符串的干货改进为字符串:注意:第一行的字符串定义为字符串变量,是数组,里面的元素是可以更改的,但通过第二行指针去定义的字符串是不可以更改的,因为它是字符串常量。注意指针的操作,当一个指针为野指针的时候,我们不能让它保存字符串,因为这样会影响到其他程序的内存空间:运行结果: 通过以上代码,我们可以看到,当以数组的形式定义字符数组的时候,用 sizeof()sizeof()sizeof() 计算出来的字符数组的长度为 555 ,而当直接定义字符串的时候,长度为 66...原创 2022-06-30 10:50:18 · 516 阅读 · 0 评论 -
【C语言】指针总结(面试)
各种指针定义:原创 2022-06-29 14:56:31 · 1218 阅读 · 0 评论 -
【C语言】多级指针
不管是二级指针还是多级指针,考虑它们和一级指针都是一样的,一级指针保存的是普通变量的地址,而二级(多级)指针保存的是指针变量的地址,即地址的地址,指针的指针,二级指针的写法如下: 为了引入二级指针,我们先看一段代码:在这里,我们定义了一个变量 datadatadata,并定义了一个指针 ppp 指向 datadatadata ,然后用 datadatadata 和 ppp 分别访问了 datadatadata 的地址和值。那我们如何去保存指针 ppp 的值呢?在这里我们就用到了二级指针:我们看一原创 2022-06-29 11:42:38 · 887 阅读 · 0 评论 -
【C语言】指针函数
指针函数,说的就是函数,函数的特征点就是返回值为指针。一个函数可以返回一个整型值、字符值、实型值等,也可以返回指针型的数据,即地址。其概念与以前类似,只是返回值的类型是指针类型而已。例如:因为 ()()() 优先级更高,所以 aaa 与后面的括号结合,是函数名,调用它以后能得到一个 int∗int *int∗ 型(指向整型数据)的指针,即整型数据的地址。x和y是函数 aaa 的形参,为整型。 关于和还有一定的说法,表示定义一个指针变量,而表示定义一个变量,这个变量类型是 intintint 指针类型原创 2022-06-27 11:38:36 · 9769 阅读 · 4 评论 -
【C语言】指针数组
之前我们学过数组指针,即指向数组的指针,那么什么是指针数组呢?注意!这两个概念不要搞混。 指针数组就是:一个数组,若其元素均为指针类型数据,称为指针数组,也就是说,指针数组中的每一个元素都存放一个地址,相当于一个指针变量。下面定义一个指针数组:由于 [][][] 比 ∗*∗ 优先级高,因此 ppp 先与 [4][4][4] 先结合,形成 p[4]p[4]p[4] 形式,这显然是数组形式,表示 ppp 数组有4个元素。然后再与 ppp 前面的 “ ∗*∗ “ 结合, “ ∗*∗ “ 表示此数组是指针类原创 2022-06-27 10:51:35 · 528 阅读 · 0 评论 -
【C语言】函数指针
如果在程序中定义了一个函数,在编译时,系统会为函数分配一段存储空间,这段存储空间的起始地址(又称入口地址)叫做函数指针。既然数组名就是地址,那么函数名就是地址。 如何定义一个函数指针变量呢?其实和普通指针变量一样,普通指针变量是这样定义的: 函数指针变量是这样定义的:3.使用函数指针变量: 使用变量有两种方式,直接访问(变量名)和间接访问(地址即变量指针),那么函数调用也一样,即直接访问(函数名)和间接访问(函数指针)。下面我们看两种函数的两种方式调用:无参函数调用:运行结果:有参原创 2022-06-27 10:07:23 · 326 阅读 · 0 评论 -
【C语言】二维数组与指针
我们都知道一维数组,但是关于二维数组,我们容易搞蒙。有一个特殊的说法:二维数组就是父子数组,为了研究清楚地址的概念,我们把二维数组回归到一维数组去讲解。看这段代码: 通过对指针和数组的学习,我们明白了数组名就是地址,所以我们可以把二维数组 a[3][4]a[3][4]a[3][4] 中的 a[3]a[3]a[3] 看作是父数组,那么它的地址就是数组名 aaa ,也叫行地址,父数组中包含三个元素:a[0]a[0]a[0]、a[1]a[1]a[1]、a[2]a[2]a[2] 。再看上面一幅图片,在每个父原创 2022-06-26 16:29:07 · 5293 阅读 · 3 评论 -
【C语言】数组与指针
既然指针能够指向一个整型变量,那数组就一定能够指向一个数组变量,在这里我们就要谈到 数组的首地址 这个名词。数组的首地址,无非就是数组的第一个元素的地址,它照样可以用取整型变量的地址那样去取它的首地址,即 &arr[0] 。除了这种方式,还有一种说法,就是 数组名就是数组的首地址 ,即 arr 就是数组的首地址,具体怎么用呢?我们看一下代码:运行结果为: 该段代码就实现了两种方法去取 数组arr 的首地址,然后将它们保存到指针变量 ∗p1*p1∗p1 和 ∗p2*p2∗p2 中,最终将数组首个原创 2022-06-25 08:50:23 · 585 阅读 · 0 评论 -
【C语言】指针初探
指针是什么呢?指针就是地址的别名,所谓,所以指针就是地址,地址就是指针。我们找到一个数据的方式有两种方式,比如你去女朋友定的酒店,一种方式是找五洲大酒店森林主题房,这种方式就好比我们通过变量名访问一个变量;另一种方式是找湖北省武汉市南李路22号3栋301房,这种方式就是通过地址去访问一个变量。 那么怎么去访问一个变量中的值呢?很容易想到,我们可以通过变量名去访问,如下: 当然,除了a的值,a所在的内存还对应一个地址,我们怎么把这个地址打印出来呢?如下: 其中,&的意思式取变量a的地址,所以它原创 2022-06-24 08:07:10 · 326 阅读 · 1 评论