- 博客(70)
- 收藏
- 关注
原创 C++的嵌套结构体
struct 外层结构体 {struct 内层结构体 成员名;// 直接嵌套// 或内层结构体类型 成员名;// 引用已定义的结构体代码 #include <iostream>double x,y;point a;// 坐标// 半径{{2,2},4},{{3,3},9},{{5,5},25}++i){return 0;运行(2,2)4(3,3)9(4,4)16(5,5)25。
2025-08-10 19:33:17
392
原创 C++的结构体指针
结构体变量存储实际数据,通过.访问成员,传参时产生副本;结构体指针存储地址,通过->访问成员,直接操作原数据。指针传递效率更高,但需确保指针已初始化。示例展示:变量赋值创建独立副本,修改互不影响;而通过指针修改会直接影响原结构体。当需跨函数修改或结构体较大时,推荐使用指针参数。
2025-08-09 21:34:42
666
原创 C++的结构体数组
struct 结构体名称 {// 成员 };代码#include <iostream>// 1. 结构体定义// struct 结构体名 { 结构体成员变量列表 };int value;}cpp;// 2. 创建一个结构体数组// Book 数组名[元素个数] = {{},{},{},...};{"三国演义",59.99,7},{"水浒传",69.99,9},{"红楼梦",79.99,100}books[2].name = "西游记";i < 3;++i) {
2025-08-08 17:53:54
390
原创 指针函数和函数指针的区别
特性指针函数 (Function returning a pointer)函数指针 (Pointer to a function)本质是一个函数是一个指针变量用途返回一个地址,通常用于动态内存分配存储一个函数的地址,用于间接调用函数读法int*是返回类型,所以是“一个返回int*的函数”*funcPtr是指针本身,所以是“一个指向函数的指针”语法指针函数先生成函数,在生成指针。本质是函数,返回的是指针。函数指针先生成指针,在生成函数。本质是指针,指向的是函数。
2025-08-05 18:02:10
609
原创 C++的new关键词的介绍
new在C++中专门用于运行时(runtime)进行动态内存分配,它允许你在程序执行过程中根据需要,从一块称为堆(heap)或自由存储区(free store)的内存区域中申请内存。动态内存(也称为堆内存)是程序在运行时根据需要分配的内存,它的生命周期由程序员手动管理(通过new分配,通过delete释放)。这与栈内存(用于局部变量,函数调用结束自动释放)和全局/静态内存(程序启动时分配,程序结束时释放)是不同的。new之所以要赋值给指针,就是因为它申请出来并返回的正是内存地址。
2025-08-05 17:11:41
435
原创 C++的数组指针
是指针,指向数组。:必须有括号(*ptr),改变优先级,。指针可移动,每次移动跳过整个数组的大小(如int[5]占 20 个字节)。sizeof等于指针本身的大小( 4 或 8 字节)。5×420int[5]:数组指针在指向二维数组的时候,需要确保。
2025-08-03 00:20:53
490
原创 C++的指针数组
是数组,元素是指针。:无括号,直接跟在类型后,[]优先级高于。数组名是一个常量指针,指向数组首元素。sizeof等于。5 × 8 = 40:元素是指针,指针移动步长为元素类型的大小。int:指针数组在指向二维数组的时候,需要确保。
2025-08-01 11:33:25
162
原创 char数组 和 char* 之间的关系
是一个包含 9 个字符的char类型数组char* pe是一个char*类型的指针当对数组名e进行取地址操作时(即&e),会得到一个char(*)[9]的数组指针当把这个数组指针(char(*)[9])赋值给char*类型的单个字符指针时,由于类型不匹配会出现报错正确写法应该是将数组名e赋值给char*pe,即questioncoutchar*
2025-07-30 13:48:02
539
原创 cout 对 char* 的特殊运算
当你使用std::cout处理char*(或)时,它不会像处理其他指针类型(例如int*或double*)那样仅仅打印指针所指向的内存地址。相反,cout会将char*视为一个 C 风格字符串,并尝试从指针指向的内存位置开始打印字符,直到遇到\0。但是char类型的数据没有\0,就会一直尝试在读取,会导致乱码、报错、截断(取决于不同的编译器对这这种情况的不同处理方式)。若需要输出char*类型的地址,需要转为void*类型,在进行输出,或使用C风格语法进行输出。
2025-07-30 11:29:35
297
原创 数组的偏移实现方式
由于数组名的运行原理指针常量,所以不能通过的方式实现偏移,但是可以通过的方式进行偏移(n是整数)。提示:,这四个输出的结果是一样的。
2025-07-30 11:16:42
343
原创 数组名的运行原理
大多数地方用时,它会自动变成一个。:如果“第一个元素”本身又是一个数组(比如在多维数组里),那么数组名就会转换成一个。中,arr隐式转换为指向arr[0]的指针,也就是一个int[5]数组类型的指针。隐式转换为指向arr[0][0]的指针,也就是一个int类型的指针。int*,其中,它和指针常量的指向地址都不可进行更改,都可修改所指数据(前提数据非const),指针常量能通过自身修改指向数据,数组名可用于修改数组首元素数据。
2025-07-28 12:53:38
258
原创 常量指针常量知识点 及 指针常量、常量指针、常量指针常量三者的总结
指针常量,修饰指针值,指针值不可改,指向值可改。常量指针,修饰指向值,指向值不可改,指针值可改。常量指针常量,修饰指针值和指向值,均不可改。
2025-07-27 09:06:38
169
原创 指针常量知识点
也就是说这个指针是一个常量, 指针的值不能进行修改。但是(因为指针常量指向的变量地址不可以更换,但是指针指向地址的变量值可以通过解引用修改)。
2025-07-27 08:56:26
101
原创 指针解引用修改变量,但赋值变量没有变动
问答问:为什么 和 的值都修改为了 但是 的值还是 呢?答: 是 值的副本,在 这一步, 解引用 ,获取了 的值 ,然后将这个值赋给 。此时, 只是得到了 值的一个副本,它和 在内存中是两个独立的存储位置。就像你有一个写着数字 的纸条(),你又拿了另一张纸条抄下这个 (),之后第一张纸条上的数字变化,不会影响第二张纸条。 修改的是 的值,当执行 时,因为 指向 的内存地址, 操作直接访问并修改了 存储的值,所以 的值变为 。同时,由于 指向 , 也反映了
2025-07-27 08:12:44
293
原创 指针的定义
格式1数据类型 变量名 = 变量值;数据类型* 指针变量名;指针变量名 = &变量名;例int *ptr;// 定义一个指向int类型的指针ptrptr = # // 将num的地址赋给ptr数据类型 变量名 = 变量值;数据类型* 指针变量名 = &变量名;例。
2025-07-27 06:59:18
396
原创 指针类型决定行为
的地址,但是在赋值的过程中,对其进行了类型转换,转为了。不然可能会出现程序崩溃,或者报错的情况。类型进行转换,就会输出对应类型的数值,即。的地址,如果对它解引用,得到的结果就是。类型,所以对其进行解引用得到的结果就是。
2025-07-27 06:42:15
87
原创 指针的基础知识
指针是一个变量,其值为另一个变量的地址,需要在数据类型和标识符中间添加 “ * ” 即,内存位置的直接地址。就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明。注意:这里的,用来声明指针的星号 * 与乘法中使用的星号是相同的。但是,在这个语句中,星号是用来指定一个变量是指针。解引用是在指针变量前使用运算符,依据指针所存储的地址,访问并获取该地址对应内存空间中数据值,或对该数据值进行修改的操作。*var-namevar-name =变量值。
2025-07-27 06:24:24
435
原创 使用数组 求平均成绩
假设一个班有n(n<=50)个学生,每人考m(m<=5)门课,求每个学生的平均成绩和每门课的平均成绩,并输出各科成绩均大于等于平均成绩的学生数量。输入数据有多个测试实例,每个测试实例的第一行包括两个整数n和m,分别表示学生数和课程数。然后是n行数据,每行包括m个整数(即:考试分数)。对于每个测试实例,输出3行数据,第一行包含n个数据,表示n个学生的平均成绩,结果保留两位小数;第二行包含m个数据,表示m门课的平均成绩,结果保留两位小数;第三行是一个整数,表示该班级中各科成绩均大于等于平均成绩的学生数量。
2025-06-22 21:59:17
679
原创 使用数组 海选女主角
面试那天,刚好来了m * n个MM,站成一个m * n的队列,副导演Fe(OH)2为每个MM打了分数,分数都是32位有符号整数。一开始我很纳闷:分数怎么还有负的?Fe(OH)2解释说,根据选拔规则,头发染成黄色、化妆太浓、穿的太少等等都要扣分数的,扣的多了就可能是负分了,当然,如果发现话语中夹有日语,就直接给 -2147483648分 了。分数送上来了,是我做决定的时候了,我的一个选拔原则是,要选一个面试分数绝对值(必须还是32位整数)最大的MM。
2025-06-20 15:08:06
375
原创 使用数组求 偶数的平方和 和 奇数的立方和
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。你可以认为32位整数足以保存结果。
2025-06-20 08:58:59
374
原创 使用数组 计算奇数的乘积
给你n个整数,求他们中所有奇数的乘积。输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个,接着是n个整数,你可以假设每组数据必定至少存在一个奇数。输出每组数中的所有奇数的乘积,对于测试实例,输出一行。
2025-06-12 06:26:07
259
原创 使用函数解决每个员工所需最少面值张数的问题
假设已知每个员工的工资额都已知晓,请问最少需要准备多少张人民币,才能给每位员工发工资的时候都不用员工找零?这里假设员工的工资都是整数,单位:元,人民币一共有100元、50元、10元、5元、2元和1元六种。输入整数n(n<100),表示员工的人数,然后是n个员工的工资。n=0表示输入结束,不做处理。输出整数x,表示至少需要准备的人民币张数。每个输出占一行。
2025-06-12 05:27:41
392
原创 使用函数去做素数判定
对于表达式n2n41,当 n 在(x,y)范围内取整数值时(包括 x , y )(−39<=xy<=50),判定该表达式的值是否都为素数。输入数据有多组,每组占一行,由两个整数 x,y 组成,当x0y0时,表示输入结束,该行不做处理。对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。
2025-06-08 07:56:16
1286
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人