C语言基础
文章平均质量分 84
一入猿门深似海
我想要一头飘逸的秀发!
展开
-
C语言:指针4:一些面试中常见的练习题(一个C语言小白的理解之旅)
一.两段“有趣”的代码首先,来两个”开胃小菜“,分析一下下面两段代码的含义://代码1(*(void (*)())0)();//代码2void (*signal(int,void(*)(int)))(int);解释1:在代码1中,先把0这个数字强制类型转成void(*)()这样的函数指针类型。再把转成的函数指针进行解引用,然后再进行函数调用。(* ( void (*)() ) 0) ();//拆分成这样看更容易理解解释2:在代码2中,我们先声明了一个名为signal的函原创 2021-01-08 20:21:41 · 262 阅读 · 0 评论 -
C语言---动态内存管理
一.为什么存在动态内存分配?常见内存开辟的基本方式,如下:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但是上述的开辟空间的方式有两个特点:空间开辟大小是固定的。数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需求,不仅仅是上述的情况。有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。 这时候就只能试试动态存开辟了。...原创 2021-01-05 22:16:56 · 90 阅读 · 0 评论 -
C语言:指针3:指针的进阶理解(一个C语言小白的理解之旅)
指针的基本概念回顾:指针就是个变量,用来存放地址,地址唯一标识一块内存空间。指针的大小是固定的4/8个字节(32位平台/64位平台)。指针是有类型,指针的类型决定了指针的±整数的步长。指针的运算。指针解引用操作的时候的权限。接下来,我们从更深层次对指针进行探索!一.数组指针C语言中的字符指针,有两个含义:1.指向一个字符char a = 'a';char* p1 = &a;2.指向一个字符串char arr[100] = "Hello Word!";char* p原创 2021-01-05 22:14:02 · 355 阅读 · 2 评论 -
C语言:指针2:指针类型,指针计算,数组指针,指针数组(一个C语言小白的理解之旅)
一.指针和指针类型这里我们在讨论一下:指针的类型。我们都知道,变量有不同的类型,整形,浮点型等。那指针有没有类型呢? 准确的说:有的。当有这样的代码:int num = 10;p = #要将&num(num的地址)保存到p中,我们知道p就是一个指针变量,那它的类型是怎样的呢? 我们给指针变量相应的类型。char *pc = NULL;int *pi = NULL;short *ps = NULL;long *pl = NULL;float *pf原创 2020-11-17 20:41:47 · 249 阅读 · 0 评论 -
C语言:指针1:指针的声明以及复杂声明语法(一个C语言小白的理解之旅)
一. 什么是指针?如何定义指针?指针是一个变量,其值为另一个变量的地址(内存位置的直接地址)。就像其他变量或常量一样,我们必须在使用指针存储其他变量地址之前,对其进行声明。定义指针的一般类型为:<类型> <变量标识符>,<变量标识符>,…;需要注意的是:对于32位操作系统,内存地址大小是4个字节,指针变量的大小也需要4 个字节。对于64位操作系统,内存地址大小是8个字节,指针变量的大小也需要8个字节。二. 如何对指针变量进行声明?1.声明简单的指针变量原创 2020-11-12 16:20:42 · 2415 阅读 · 0 评论 -
递归思想(C语言版)
一. 什么是递归?定义:递归(recursion):程序调用自身的编程技巧称为递归。递归做为⼀种算法在程序设计语⾔中广泛应⽤。是⼀个过程或函数在其定义或说明中有直接或间接调⽤⾃身的⼀种⽅法。递归的主要思考方式在于:把大事化小。它通常把⼀个⼤型复杂的问题层层转化为⼀个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的两个条件:(a)存在限制条件,当满⾜这个限制条件的时候,递归便不再继续。(b)每次递归调⽤之后越来越接近原创 2020-10-30 23:20:14 · 974 阅读 · 0 评论 -
C语言实现控制台“扫雷”小游戏
C语言实现控制台“扫雷”小游戏根据以往的游戏经验,我们能首先可以确定扫雷游戏胜利的规则是:翻开所有不是雷的区域才能算是胜利。接下来我们需要确定整个程序的设计思路:1.首先,我们定义...原创 2020-11-04 19:51:36 · 278 阅读 · 0 评论 -
用C语言实现简单的控制台三子棋游戏
用C语言实现简单的控制台三子棋游戏首先,确定一局游戏的基本流程:创建棋盘并初始化。(将棋盘看作一个二维数组)打印显示出棋盘。玩家落子(玩家通过输入行列坐标的方式来落子)。判定胜负关系。(如果玩家胜出,则退出游戏。)电脑落子(随机位置落子) 。判定胜负关系(如果电脑胜出,退出游戏。否则,回到步骤 2 继续执行。)第一步,此处通过构造,enu()函数搭建一个简单的交互菜单和玩家交互,用来判断是否开始进行一局游戏。#define _CRT_SECURE_NO_WARNINGS#incl原创 2020-11-03 14:46:02 · 192 阅读 · 0 评论