自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

森林里的白杨

既然选择了远方,便只顾风雨兼程。

  • 博客(17)
  • 收藏
  • 关注

原创 【C语言进阶】关于柔性数组的学习

1.柔性数组的概念:也许你从没有听说过柔性数组(flexible array)的概念,但是它确实存在的;在C99中,结构体的最后一个元素允许是未知大小的数组,这就叫【柔性数组】成员;例如:struct S{ int n; int arr[]; //柔性数组成员}2.柔性数组的特点结构体中的柔性数组成员前面必须至少有一位成员变量;sizeof()函数计算结构体大小时,是不包括柔性数组的成员所占内存大小的;包含柔性数组成员的结构最好用malloc()函数进行动态分配内存,并且分配

2022-07-21 22:33:06 89

原创 【C语言进阶】⑨动态内存分配知识总结 超详细

1.为什么存在动态内存分配?通常:int a = 20; //在栈空间是哪个开辟四个字节char arr[10] = {0}; //在栈空间上开辟10个字节的连续空间;但是,上述开辟的内存的方式有两个缺点:空间开辟的大小是固定的;数组在声明的时候,必须指定数组的长度,和它所需要的内存,以至于在编译时系统分配空间;然而,对于空间的需求,不仅仅是上述的情况;有时候我们需要的空间大小在程序运行的时候才能知道,那数组在定义是给定的固定大小的空间就不能满足需求了,这时候我们就哟尝试动态内存开辟!

2022-07-12 22:55:08 166 5

原创 【C进阶】⑧自定义类型:结构体、枚举、联合体 超详细的总结

一、结构体1. 什么是结构体?结构体是一些值的集合,这些值被称为成员变量;结构体中的每个成员变量可以是不同类型的变量;例如:数组是一组相同类型的元素的集合;故:结构体也是一些值的集合,结构体的每个成员可以是不同类型;2. 结构的声明struct tag{ member -list }variable -list;例如:生活中,对象是复杂的;对于一本书而言:一本书含有:书名+作者+出版社+定价+书号等等;一个学生:学号+姓名+电话+性别等等;这些,书和学生就是一种结构

2022-05-25 12:22:13 841 45

原创 【C编程】冒泡排序算法与qsort()函数模拟实现

什么是冒泡排序?“冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序>的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。”请看图解:(注:图片来源于博客作者:烟雨倾城

2022-05-20 11:14:38 217 40

原创 【C语言进阶】⑦字符串函数详解

一、字符串函数1.求字符串长度 - strlen():函数介绍:字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ );传递的实参所指向的字符串必须要以 ‘\0’ 结束,否则得到的是一个错误值;函数strlen()的返回值为size_t,是无符号的整数;2.自己模拟实现strlen()函数的功能2.1计数器版本int my_strlen(const char*str){ int count = 0; asser

2022-05-16 07:51:51 430 46

原创 【C编程】四则运算实现的三种方法详解

1. 方法一:Switch选择语句实现:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int Mod(int x, int y){ return x * y;}int Del(int x, int y){ return x / y;}int Add(int x, int y){ return x + y;}int Sub(int x, int y){ return x - y;}menu(){ pr

2022-05-14 09:39:59 3197 21

原创 【C语言进阶】经典笔试题详解之指针篇

一、二维数组代码块①:int a[3][4] = { 0 }; printf("① %d\n", sizeof(a)); printf("② %d\n", sizeof(a[0][0])); printf("③ %d\n", sizeof(a[0])); printf("④ %d\n", sizeof(a[0] + 1)); printf("⑤ %d\n", sizeof(*(a[0] + 1))); printf("⑥ %d\n", sizeof(a + 1)); printf("⑦ %

2022-05-12 14:42:35 313 40

原创 【C语言进阶】经典笔试题数组篇之一维数组详解

一、知识回顾sizeof(数组名) -数组名表示整个数组的大小,计算整个数组的大小;&数组名:表示整个数组;除此之外,所有的数组名都是数组首元素的地址;sizeof(),求字符串长度时,字符串后自带有\0,也会被记录在内;strlen(),求字符串长度,遇到\0后结束;二、题目2.0 一维数组代码块①:int main() { int a[] = { 1,2,3,4 }; printf("① %d\n", sizeof(a)); printf("② %d\

2022-04-26 17:21:21 2108 54

原创 【C语言进阶】⑥函数指针详解

一、函数指针1.概念函数指针:首先它是一个指针,一个指向函数的指针,在内存空间中存放的是函数的地址;请看示例:int main(){int a = 10;int*pa = &a;char ch = 'c';char* pc = &ch;int arr[10] = {0};int (*parr)[10] = &arr;//取出数组的地址return 0;}解析:parr是一个指向数组的指针,存放的是数组的地址;所以:数组指针 —存放数组地址的指针

2022-04-21 13:17:36 10992 64

原创 【C语言进阶】⑤关于数组传参和指针传参辨析

文章目录一、数组1.1.一维数组1.2.二维数组1.3.指针和数组二、一维数组传参三、二维数组传参四、总结一、数组1.1.一维数组int arr1[]={1,2,3,4,5,6,7,8};数组名 arr1 一般表示的是首元素的地址,以下两种情况除外:(1)&arr1表示整个数组元素的地址;(2)sizeof(arr),其中arr表示的是整个数组,sizeof(arr)计算的是整个数组的大小,单位是字节;arr和&arr的辨析,请下面图解:1.2.二维数组int

2022-04-19 16:51:47 1003 26

原创 【C编程】三招教你学会用C语言编写“猜数字小游戏”

前言:一个游戏要有界面、有实现的函数;明确这两点之后,我们先搭建框架,之后在去完善每一个框架的细节!第一步.编写游戏界面函数menu()和游戏的实现函数game();代码如下:void game(){ printf("玩游戏!");}void menu() //菜单函数{ printf("*****************************\n"); printf("**********猜数字游戏**********\n"); printf("*******1.paly

2022-04-18 06:43:50 2826 12

原创 【C语言进阶】④指针归纳总结,这些指针你都认识吗?

文章目录一、指针的概念二、野指针1. 概念:2. 为什么会出现野指针?3. 如何避免野指针的出现?三、指针类型总结3.1字符指针3.2指针数组3.3数组指针3.4指针函数3.5函数指针3.6.看一段代码,想一想打印的结果是什么?3.7.输出的是两个地址,这两个地址是 test 函数的地址 为什么呢?3.8指针函数和函数指针总结四、感谢与预告一、指针的概念指针就是一个变量,只不过这个变量比较特别,是用来存放地址的,而地址是计算机内部唯一标识的一块内存空间,即:地址是存储空间的编号!;其实忽略这个变量

2022-04-16 22:07:23 503 33

原创 【C语言进阶】③探究浮点数在内存中的存储方式

文章目录一、例子二、浮点数在内存中存储方式2.1国际标准IEEE(电气和电子工程协会)754规定:三、解答3.1刚开始的例子答案一、例子想想看,输出的结果是什么?int main(){ int n = 9; float *pFloat = (float *)&n; printf("n的值为:%d\n",n); printf("*pFloat的值为:%f\n",*pFloat); *pFloat = 9.0; printf("num的值为:%d\n",n); printf("

2022-04-11 23:25:59 811 10

原创 【C语言进阶】②数据在内存中存储之经典例题详解

第一题:百度2015年系统工程师笔试题:请简述大端字节序和小段字节序的概念,并设计一个小程序来判断当前机器的字节序。(10分)解析:上一篇文章已经讲述了大端字节序和小端字节序的概念,这里就不在累述。我们来分析一下编程实现:(1) 首先,对于机器的存储方式一般就两种:大端和小端;大端字节序是数据的高位存储在内存的低位,小端字节序是数据的低位存储在内存的低位。那么,对于一个变量来说,我们是不是只要判断出内存中的低位是数据的高位还是低位,那么我们就可以知道机器的存储方式。(2)实现:

2022-04-10 22:45:29 1219 5

原创 【C语言进阶】①探究数据在内存中的储存

一、知识回顾1.数据类型char -字符型 //在内存中占一个字节short -短整型 //在内存中占两个字节int -整型 //在内存中占四个字节long -长整型 //在内存中占四个字节float -单精度浮点型 //在内存中占 四个字节double -双精度浮点型

2022-04-06 22:14:34 591 3

原创 【Visual Studio】编程起点之实用调试小技巧

1.什么是bug?答:第一次被发现的导致计算机错误的飞蛾,也是第一个计算机程序错误。2.调试是什么?重要吗?所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心无愧,就必然需要掩盖,那就一定会有踪迹留下,留下的痕迹越多就越容易顺藤摸瓜,找到真相,这就是推理的过程。一名优秀的程序员是一名出色的“侦探”。每一次调试都是尝试破案的过程。我们是如何写代码的?又是如何排查出现的问题呢? -----拒绝迷信式调试!!!2.1 调试是什么?调试(英语:Deb

2022-04-02 00:39:02 329 8

原创 C语言实现素数查找

文章目录前言一、编程练习二、实现思路三、运行结果前言 作为一个现在已经大三的学生,大一大二时得过且过,不喜欢去敲代码,对待问题不去深入探究。现在正在准备考研,复习以前学过的知识,有种“扒开云雾见天日”之感,领略编程的乐趣,当然,学习过程中难免会遇到问题,欢迎友友们一起来探讨!提示:以下是本篇文章正文内容,下面案例可供参考一、编程练习 **1.打印a到b之间所有的素数**二、实现思路 1.素数判断定义:只能被1和它本身整除的数;故,我们判断第i个是不是素数,最简单的方法就是

2022-04-01 19:23:48 1416 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除