自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 【C语言】程序环境和预处理

_FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的。语法:1000register//为 register这个关键字,创建一个简短的名字for;;//用更形象的符号来替换一种实现break;case//在写case语句的时候自动把 break写上。

2023-08-25 16:28:44 28 1

原创 【C语言】文件操作

磁盘上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件(从文件功能的角度来分类的)。C语言程序只要运行起来,就会默认打开三个流:标准输入流 stdin标准输出流 stdout标准错误流 stderr那流是什么呢?用图来表示:这里对比一组函数:scanf 从标准输入流(键盘)读取格式化数据fscanf 从所有输入流读取格式化数据sscanf 把一个字符串转化为格式化数据。

2023-08-23 16:46:48 29 1

原创 【C语言】动态内存管理

C语言提供了一个动态内存开辟的函数:这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。如果开辟成功,则返回一个指向开辟好空间的指针。如果开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。返回值的类型是 void* ,所以malloc函数并不知道开辟空间的类型,具体在使用的时候使用者自己来决定。如果参数 size 为0,malloc的行为是标准是未定义的,取决于编译器。

2023-08-19 15:54:58 28

原创 【C语言】自定义类型:结构体,枚举,联合

有了结构体类型,那如何定义变量,其实很简单。int x;int y;}p1;//声明类型的同时定义变量p1//定义结构体变量p2//初始化:定义变量的同时赋初值。struct Stu //类型声明//名字int age;//年龄//初始化位段的声明和结构是类似的,有两个不同:1.位段的成员必须是 int、unsigned int 或signed int。2.位段的成员名后边有一个冒号和一个数字。int _b:5;int _c:10;

2023-08-18 16:20:48 18 1

原创 【C语言】内存函数

函数memcpy从source的位置开始向后复制num个字节的数据到destination的内存位置。memmove和memcpy的差别就是memmove函数处理的源内存块和目标内存块是可以重叠的。如果source和destination有任何的重叠,复制的结果都是未定义的。如果源空间和目标空间出现重叠,就得使用memmove函数处理。memcmp:比较从ptr1和ptr2指针开始的num个字节。这个函数在遇到 ‘\0’ 的时候并不会停下来。

2023-08-16 14:17:38 22 1

原创 【C语言】字符函数

字符串已经 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含 ‘\0’ )。strstr:判断目的字符串中是否存在源字符串,若存在,返回目的字符串中源字符串的起始地址,不存在,则返回空指针。strncat:将源字符串中num个字符与目的空间中的字符串拼接,将拼接后的字符串放到目的空间中。如果源字符串的长度小于num,则拷贝完源字符串之后,在目标的后边追加0,直到num个。strcat:将源字符串和目的空间的字符串拼接,并将拼接后的字符串放在目的空间中。

2023-08-10 16:02:35 34 1

原创 【C语言】带你深入理解指针

数组指针是指针?还是数组?顾名思义是指针。我们已经熟悉:整形指针: int *pint;能够指向整形数据的指针。浮点型指针: float * pf;能够指向浮点型数据的指针。那数组指针应该是:能够指向数组的指针。下面代码哪个是数组指针?答案是:int *p1[10];解释:p先和 * 结合,说明p是一个指针变量,然后指着指向的是一个大小为10个整型的数组。所以p是一个指针,指向一个数组,叫数组指针。这里要注意:[]的优先级要高于 * 号的,所以必须加上()来保证p先和 * 结合。

2023-07-30 17:01:15 52 1

原创 带你初步认识指针

允许指向数组元素的指针与指向数组最后一个元素后面的那个内存位置的指针比较,但是不允许与指向第一个元素之前的那个内存位置的指针进行比较。我们可以通过&(取地址操作符)取出变量的内存起始地址,把地址可以存放到一个变量中,这个变量就是指针变量。要将&num(num的地址)保存到p中,我们知道p就是一个指针变量,那它的类型是怎样的呢?慨念: 野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的)2.我们平时口语说的指针,通常指的是是指针变量,是用来存放内存地址的变量。指针变量,用来存放地址的变量。

2023-07-08 17:29:54 23

原创 浮点数在内存中的存储

常见的浮点数:3.141591E10浮点数家族包括:float、double、long double类型浮点数表示的范围:float.h中定义int n = 9;printf("n的值为:%d\n" , n);printf("*pFloat的值为:%f\n" , * pFloat);printf("num的值为:%d\n" , n);printf("*pFloat的值为:%f\n" , * pFloat);return 0;

2023-06-02 14:53:05 36

原创 实现字符串的倒置!

当我们第一步结束后,字符串首地址arr指向的是字符'b',除了最后一个单词后面是'\0'外,其他的单词后面都是空格,此时我们可以设置两个指针变量,一个指针变量start指向单词的首地址,一个指针变量cur也指向单词的首地址,使cur向后移动,当指针变量指向空格和'\0'时停下来,我们就可以得到一个单词的末地址cur-1,之后将这两个指针变量传给逆序函数进行逆序;这串代码是用来实现字符串逆序的,left接收字符串首地址,right接收字符串末地址,然后对其进行解引用将其内容进行交换。至此我们的代码已经结束!

2023-05-26 14:15:39 424 2

原创 const的作用

1.const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来修改,但是指针变量本身的内容可以被修改。2.const如果放在*的右边,修饰的是指针变量本身,保证指针变量的内容不能修改,但是指针指向的内容可以通过指针修改。通过上面两段代码可以看到 m的值不能通过指针解引用进行修改,但可以直接修改m本身。我们可以看到,指针p的值不能被修改,但对p解引用可以修改*p的值。const修饰的变量不能直接被修改,可以通过指针解引用进行修改。当const修饰指针时。

2023-05-22 21:50:16 35 2

空空如也

空空如也

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

TA关注的人

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