- 博客(15)
- 收藏
- 关注
原创 ٩( ‘ω‘ )و C语言动态内存函数详细介绍!!!
在我们已经掌握的内存开辟方法中,空间的开辟大小是要固定的,比如申明一个数组或者定义一个int类型变量。但是有时候我们需要的空间大小在程序运行的时候才能知道,那数组的编译时开辟空间的方式就不能满足了。所以这时候我们就需要试试动态内存开辟了。这篇文章介绍了动态内存函数。一、动态内存函数的介绍1、malloc函数 和free函数【注】:malloc函数和free函数都声明在stdlib.h头文件中。malloc函数原型:void* malloc (size_t size);...
2021-10-04 18:26:27
753
原创 C语言-自定义类型详解(结构体(struct),枚举(enum),联合(共用体)(union))
一、结构体1、什么是结构?结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。2、结构体的声明struct tag /*结构体的标签*/{ member-list; /*成员变量的定义*/}variable-list; /*结构体变量的定义*/例如下面定义一个图书信息的结构体变量:struct Books { char title[50]; //局部变量 char author[50]; char subject
2021-09-25 19:38:43
929
原创 C语言-字符串库函数详解(含部分函数的模拟实现)
面试中常常要求写一些基本的库函数,尤其以字符串库函数考的最多,本文汇总了一些常见的字符串库函数。一般地,使用这些函数,需要包含头文件:#include <string.h>一、strlen求字符串长度的函数。size_t strlen ( const char * str );[注]:字符串以'\0'作为结束标志,strlen函数返回的是字符串'\0'前面出现的字符个数(不包括'\0') 函数的返回值为size_t,是无符号的。下面通过一个例子解释返回值是无符
2021-09-20 19:32:41
613
原创 ٩( ‘ω‘ )و 【超详细!!!C语言scanf问题】scanf吃掉回车或空格问题
一、什么是scanf语句?它是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include <stdio.h>读取方式:一般格式为:scanf(格式控制,地址列表),也就是scanf("%?",&?);可以读取对应类型的数值并且存储到指定的变量,并且可以读取多个数值,如数字,字符,字符串等,每次用到scanf‘时,都会从数据缓存区读取一个或多个字符,并存.
2021-08-27 22:43:03
6349
1
原创 (っ•̀ω•́)っ✎⁾⁾ 程序员面试智力题-脑筋急转弯,弯弯道道转不完(1)
第一题:A、B、C、D 四个人,要在夜里过一座桥。他们通过这座桥分别需要耗时 1、2、5、10 分钟,只有一支手电,并且同时最多只能两个人一起过桥。请问,如何安排,能够在17分钟内这四个人都过桥?解析:因为只有一支手电,所以有人过去之后,肯定需要把手电送回来,我们需要选择花费时间最少的人送手电,可以节省时间。题目中同时最多只能两人过桥,所以先让过桥时间短的A和B过桥,这里花费了2分钟,接着让时间花费最少的A送回手电,花费1分钟,然后让C和D过桥,花费10分钟,接着让B送回手电,花费2分钟,接着A
2021-08-16 18:33:45
601
1
原创 C语言:整型在内存中的存储及表示形式(附习题)
我们都知道:一个变量的创建是要在内存中开辟空间的,而空间的大小是根据不同的类型而决定的。那么数据在开辟空间中是如何存储的呢?首先我们先了解以下概念:一、整数的表示形式(原码、反码、补码)计算机中的整数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”。1、正整数的原码、反码、补码相同。2、而负整数的三种表示方法不同: 原码:直接将二进制按照正负数的形式翻译成二进制 反码:将原码的符号位不变...
2021-08-09 21:47:08
2211
1
原创 C语言:浮点型在内存中的存储(超详细哦!)
一、浮点数存储规则根据国际标准IEEE(电气和电子工程协会) 754,任意一个二进制浮点数V可以表示成下面的形式:(-1)^S * M * 2^E (-1)^s表示符号位,当s=0,V为正数;当s=1,V为负数。 M表示有效数字,大于等于1,小于2。 2^E表示指数位。看到这里,你可能一脸懵,那么我们接下来举个例子:(写成科学计数法表现形式)1、十进制的5.0,写成二进制是101.0,相当于1.01×2^2(因为如果是十进制退两位,是10^2,这里是二进制,所以是2^2)。那么,
2021-08-09 21:14:59
1684
1
原创 你真的了解函数栈帧的创建与销毁吗?
一、相关的几个名词解释。ebp:栈底指针。 esp:栈顶指针。(函数再次进行使用是在此上面加入使用的) call:用于保存当前指令的下一条指令并跳转到目标函数。 push:入栈。(压栈) pop:出栈。 mov:类似于赋值操作。 add:加法操作。 sub:减法操作。 ecx : 是计数器(counter), 是重复(REP)前缀指令和LOOP指令的内定计数器。 eax:是"累加器"(accumulator), 它是很多加法乘法指令的缺省寄存器。 esi/edi:分别叫做"源/目标索
2021-08-06 20:21:07
150
原创 C语言常见图形打印合集(牛客网习题)
以下均为多组输入。一、线段图案#include <stdio.h>int main(){ int c; while(scanf("%d", &c) != EOF) { int i; for(i = 1; i <= c; i++) printf("*"); printf("\n"); getchar(); } return 0;}结果.
2021-08-05 20:31:07
2937
原创 经典笔(面)试题-程序竟然死循环?
代码如下:#include <stdio.h>int main(){ int i = 0; int arr[] = {1,2,3,4,5,6,7,8,9,10}; for(i=0; i<=12; i++) { arr[i] = 0; printf("hello bit\n"); } return 0;}在VS2013开发环境调试以上的代码,解释以上代码的问题。分析:这个代码的结果是 死循
2021-08-03 19:14:49
207
原创 C语言-数组相关习题(1)(含冒泡排序)
第1题交换两组数组的内容(数组长度相同)#include <stdio.h>void exchange(int arr1[], int arr2[]){ int t,j; for (j = 0; j < 10; j++) { t = arr1[j]; arr1[j] = arr2[j]; arr2[j] = t; }}int main(){ int arr1[10] = { 1, 4, 5, 2, 6, 7, 9, 10, 3, 8 };...
2021-08-01 17:58:00
337
1
原创 教你学会扫雷小游戏(简易版9×9)—C语言(附源代码)
前言扫雷游戏规则:1、点击方格,如果出现数字,数字表示这个格子周围八个格子的雷的总数。2、如果点击的方格里有雷,那么游戏结束,如果没有雷,则显示旁边一圈(8个)格子的总雷数。为了更加清楚地实现效果,我们将设置两个字符型数组,一个放置雷,一个放置排查出来雷的个数,便于我们实现扫雷。同时,我们创建两个源文件以及一个头文件,便于修改,提高代码可读性:首先是自己最先创建,包含主函数的.c文件,例如在此游戏中是test.c,用来测试。 我们通常会新建一个头文件,例如此游戏新建game.h,此头文
2021-07-28 22:58:33
1488
原创 三子棋(井字棋)游戏-C语言超详细解析!(附源代码)
一、开始写游戏之前,我们要注意:(这样写便于修改,提高代码可读性)首先是自己最先创建,包含主函数的.c文件,例如在此游戏中是test.c。 我们通常会新建一个头文件,例如此游戏新建game.h,此头文件通常用来完成函数声明、头文件的引用、宏定义变量。 新建一个.c文件,例如在此游戏新建game.c,编写涉及到的功能函数实现。二、思路我们可以先编写让玩家进行输入(决定是否进行游戏,例如:进行输入1,不进行输入0,(这里运用switch语句进行判断选择))。 如果用户输入1,则我们进入游戏。
2021-07-27 23:50:37
4554
原创 字符串&转义字符&注释(C语言)
一、字符串由双引号起来的一串字符称为字符串。比如:"hello\n"【注】:1、字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串内容。#includeint main(){ char arr1[] = "new"; char arr2[] = {'n', 'e', 'w'}; char arr3[] = {'n', 'e', 'w', '\0'}; printf("%s\n", arr1); p...
2021-07-20 23:47:25
1653
原创 数据类型(C语言)
一、基本数据类型1、字符型数据类型char 字符型在定义时候需要使用''(英文状态下单引号)将值括起来,char ch = ‘A’,此时ch表示的就是A这个字母。在内存中占用1字节的空间。2、整型1)short 短整型在内存中占用2字节的空间。2)int 整型在内存中占用4字节的空间。3)long 长整型在内存中占用4字节的空间。4)long long 更长的整型在内存中占用8字节的空间。【为什么整型(int)和长整型(long)都在内存中占用4字节的空间
2021-07-19 23:12:02
479
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人