- 博客(35)
- 收藏
- 关注
原创 【C++】类和对象 (第一弹)
类具有三大特性:封装、继承、多态c++中万物皆可为对象,对象有属性和行为例如:汽车可以看作对象,属性有:发动机、轮胎、方向盘等;行为有:放歌、载人等具有相同属性的也可以抽象为类。
2025-04-07 21:55:44
715
1
原创 指针的一些题目
因为 pp是二级指针,所以用int** 接收, &p 是取一级指针的地址,肯定也是用二级指针接收。直接用二维数组接收,可以,但是arr[ ][ ],第二个[],必须有值,才能判断整个数组的大小;arr2 这个数组,里面的元素是int*型,接收int*类型元素的地址要用 int**pp 是二级指针,里面放的是 指针变量p的地址,可以解引用找到 p,再解引用找到n;(*arr)[] 是数组指针,*arr[],本质是数组,里面元素类型是int*数组的地址要用数组指针接收,本质是指针,所以arr要先和*结合,
2024-12-18 19:53:50
762
原创 动态内存管理
malloc 函数负责向内存,free负责,它俩是一对molloc 申请 size 个字节大小的空间,这块空间是的,返回类型,如果申请成功,,如果失败,free 用于释放 先前malloc、calloc、realloc 申请的空间;如果 ptr指向的不是它仨申请的空间,会❌如果 ptr 是空指针,啥都不会做,释放后,不会改变ptr的值,也就是,它。
2024-12-11 11:49:28
803
原创 【自定义类型】---枚举和联合
也是一种自定义类型也包含一系列成员,特点:成员共用一块空间// 联合类型的声明union Ucint a;// 1char c;// 4int main()// 联合变量的定义union Uc u;// 4// 打印 u a c 的地址//发现地址相同,得 它们共用一块空间u.c = 0x00;return 0;
2024-12-10 15:50:59
480
原创 位段【结构体兄弟】
类似结构体,但又有些不同:①、成员必须是int (signed、unsigned)形( char 也ok)②、成员后面有一个冒号和一个数字(成员所占bit)struct Aint a : 2;int b : 5;int c : 10;//后面的数字是占多少比特(bite)位段可以在一定程度上节省空间。
2024-12-09 11:51:07
342
原创 qsort函数用法,以及模拟实现
基于快速排列的一个函数,它的四个参数的含义:1、void* base,是排序开始的地址2、size_t num 想要排列的个数3、size_t size 排列对象,一个占多少空间(字节)4、int (*comper)(void*,void*) 我们自己写的对比函数,用于确定元素排列的顺序,是逆序还是正序其返回值决定,是否交换这两个数,返回值 >0 时 交换其用法一般如下:(以int 型示例)// 升序排列(当前者>后者,返回正数 1 表示交换)return 1;return -1;
2024-12-06 22:21:45
525
原创 字符串函数和内存函数
(将原字符串中的字符拷贝到目标字符数组中,包括终止符号\0,并在这里停止;为了避免越界,目标字符串数组应该足够大去接收)👆(返回值是 destination,是个地址,目标字符数组的首地址)
2024-12-04 20:32:34
1457
1
原创 strlen函数用法,&模拟实现
用来求字符串长度,从我们给的地址开始,往后数,直到遇到 '\0' 停止,返回数的个数,不包括。因为,strlen返回值类型是无符号整形,相减得到的也是无符号整形,负数-->超级大。'\0' 返回值类型是无符号整形。指针-指针 结果是它俩之间。
2024-12-03 18:54:53
367
原创 一道题——关于 指针 和 数组 区别
对于数组来说,他要存放这些字符,要开辟空间,每个变量开辟的地址肯定都不一样,arr1和arr2表示的是它们各自首元素的地址,不可能相等,!而p1和p2 都是指向abcde这串字符的首字母地址,所以它俩存放的地址一样,=abcde是一串常量字符,放在特定的空间,不能改变,所以地址是定死在那一块。
2024-11-28 21:54:43
125
原创 c语言——数组名该如何理解呢?
p和*先结合,表示p是指针,然后再结合[5]和int 表示是int[5]类型的。可以看出,&arr 取的是整个数组的地址,怎么存放这么多地址呢?sizeof(数组名+i) 就不能表示整个数组。表示整个数组,取的是整个数组的地址。sizeof是计算()占了多少字节(byte)表示整个数组 ※。
2024-11-28 21:46:32
578
2
原创 数据在内存中的存储
数组类型——> int [10] 类型——> char [5] 类型>结构体类型 struct>枚举类型 enum>联合类型 union。
2024-11-28 19:28:24
266
原创 c语言几道易错题
在函数test中的 a 是咱们定义的局部变量,当局部变量和全局变量冲突是,在局部的时候优先局部变量,咱们已经在局部声明它是个局部变量,所以无论它在局部如何变化,都不影响全局变量a。如果我们把test()中的 int a=2中的int 去掉,答案就变成了 3,因为这个时候a没有声明是局部变量,我们在使用的时候,就认为是是全局变量的那个a。d、int* p[10] 与 int (*p)[10]不等价。D、int *p[10] 与 int(*p)[10]等价。a、左const修饰 p;
2024-11-28 18:50:01
996
原创 基础 指针
如何管理内存呢?其实是分成一个一个的单元,每个内存单元大小位1bety,我们把内存单元的编号成为,也就是。总之:指针就是地址,口语中指针通常指的是指针变量。指针的大小,跟环境有关,x86环境下是4字节,x64环境下是8byte。
2024-11-25 11:43:01
654
原创 函数中实参与形参的“爱恨情仇”
这是传值调用,swap函数改变的是形参的大小,改变不了实参的大小,不能解决问题。形参相当于是实参的一份数据拷贝。把实参的地址给形参,通过形参改变地址里面的内容。写一个函数,交换main()内的俩数的值。
2024-11-23 11:39:58
165
原创 逻辑操作符
逻辑操作符,得到的结果只有真(1),假(0)逻辑与&& 逻辑或||逻辑与&&先遇到假就不会再去右边。逻辑或||先遇到真就不会再去右边。逻辑与&& 必须全为真才时真。逻辑或||有真就是真。
2024-11-20 15:36:39
616
原创 移位操作符 and 位操作符 + 取反操作符
< 左移 >> 右移它们作用对象都是而且是对的例如:计算机中整数储存方式是【补码】7的二进制为00000000000000000000000000000111 原码、反码、补码-7的二进制为↓是符号位10000000000000000000000000000111 原码111111111111111111111111111111111000 反码 (原码除符号位,其余取反)
2024-11-20 09:49:41
1112
原创 循环专业【初级版本】
1.计算n的阶乘2.计算1!+2!+...+n!;3.在一个有序数组中查找具体的某个数字n4.编写代码,演示多个字符从两端移动,向中间汇聚5.编写代码实现,模拟用户登录情景,并且只能登录三次,如果正确显示登录成功,如果错误三次就退出程序。
2024-11-11 20:04:47
414
原创 c语言——小小题目 拿下
通过scanf函数的%m格式控制可以指定输入的大小,比如 %4d 输入域宽为4的整形数字。其实printf是有返回值的,还是int型,大小是打印的字符个数,转义字符【\"】算一个哦。输出 字符%c 字符串%s 字符的存储形式其实是以ASCII码存储的。2、在屏幕输出 printf("hello world!\" \n \\ 都是转义字符," "会就近配对。就要转义它 \\表示一个反斜杠字符【 \ 】3、第一行输出"hello world!4、输入年月日,输出的时候分开输出。
2024-11-10 23:07:54
243
原创 分支语句【if】 pk 【switch】
有三种形式:① if(表达式)语句② if(表达式)语句else语句③if(表达式)语句else if (表达式)语句................(可以有多个else if )else语句当if后面的表达式为或者时,执行后面的语句,否则就往下走👇这里第①个if语句和第②个都会执行,因为第一个是判断是否相等,相等为真,执行,不相等为假;第二个是赋值,只要不是赋值为0,结果就不为0,都执行;第三个因为②if中已经给i赋值为6,所以i≠5,这个表达式为假,不执行。
2024-11-09 15:50:44
549
原创 c语言——>结识【结构体】
图①,用到了【 . 】和【 -> 】,他俩都是用来访问结构体内部的成员,区别在于,【 . 】是直接访问,就是它的作用对象是咱们自定义类型的变量s,或者是与它等价的*p;【->】是通过指针来访问的,作用的对象是指针变量p。int,char,double等只能存放一种数据,但是我们生活中,事务都是多信息的,比如一个人,他有名字,性别,年龄,电话等,面对这么复杂的对象我们该怎么做呢?c语言中不仅给我们定义好了一些类型,它还给了我们一些权力,让我们去自定义类型,其中有一个家伙叫结构体 【struct】
2024-11-08 12:06:22
288
原创 c语言战役 之 初会“指针”
认识指针之前先了解一下,内存,内存会划分为一个一个的内存单元,就类型与咱们的单元楼,每一个都是有地址有编号的,而且都是有占地面积(大小),单位大小为1字节(byte)对于*p * 解引用操作符(与&是一对),意思就是 通过p中存放的地址,找到p所指向对象。的,方便我们去寻找它背后的变量的实际位置。假如 *p=20;通过这种方法可以间接改变变量a的值。编号——>地址——>指针。
2024-11-08 11:15:15
303
原创 今日所学知识点【c语言】
sizeof是单目操作符(单目操作符就是,只有一个对象,或者说只有一边有对象),它的作用是:计算××所占大小(字节),得到的结果是一个数字。
2024-11-07 20:16:43
362
原创 c语言中的前置++与后置++区别
所以 b=原本a的值 10,用完之后呢,a再加上 1,这个b=a++ 表达式结束后,a也完成了+1。首先初始化变量a为10,接着用a++来初始化变量b,后置a++作用就是。得出结果是a=11 ,b=10 为什么会怎样呢?所以得出结论:在表达式中(不是单独存在的情况),a=11,所以我们得出上述的结果。得出a和b都为11,为什么呢?,同时,适用于a-- 和--a。因为:前置++a,它是。先将a加1,再初始化b。
2024-11-07 18:33:30
400
原创 计算字符串长度易犯错误(1)
当strlen读取计算的时候,到了s后没发现'\0'就继续往后读取,直至发现'\0'判断这段代码的结果A:3 B:0 C:4 D:随机值。补充:如果数组arr[]={"abc"};它会默认c后面有个'\0'当为 arr[4] 时,程序能得出正确结果,因为数组默认没有赋值为0。原因:因为这个字符数组结尾没有。
2024-11-06 16:38:15
308
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人