- 博客(31)
- 收藏
- 关注
原创 c++中的new
若用new地址就像我们先拷贝一次a地址,取值用完了,然后再用delete [] p手动释放该处地址。因为我们一般编译的时候都是局部变量,全局变量,也就是说放在全局区和栈区。比如说 new一个数组,new int[10];表示开辟40字节空间。我们访问不到堆区,但我们可以类似于拷贝该地址,然后先用再释放。我们的new放在堆区,堆区我们程序员自己开辟一处空间。有int *p=new int[10];感觉new就像我们&符号。表示p光明正大取a地址。
2024-01-06 15:50:00 410
原创 wsl Ubuntu下载
找到Windows自带商店下载Ubuntu固定到桌面。找到适用Linux的windows子系统。然后自己跑一下代码呗看可行。下载gcc,g++全家桶。找到右上角程序和功能。进入找到这个点击进去。
2024-01-06 15:34:55 638
原创 struct结构体中的按字节取按位取
char b:10;//这种变量:加数字就表示按位取,1字节等于8位。char b:10;表示按位取 ,且从4开始,4是1的倍数故从4开始。char1个字节8位不够放,所以再开辟一个字节空间放,就是2个字节。double就是8,这里最大为int,所以应该是4的倍数为8。int为4个字节 也就是0123。那么sizeof(struct)是多少了?那么有人说sizeof(struct)是6。但struct要是最大类型数的倍数。//这个就是按字节取。
2024-01-06 15:08:06 685
原创 c++中的引用
但在c++中,p也表示的是指向a的地址,但如果p是引用的话就相当于我取到你的地址也就等于取到a的值(我找到门牌号我就打开门了)在c语言中表示p指向a的地址,然后解引用取a的值(我需要钥匙和门牌号打开这个门)引用就相当于给一个人取小名!也就是说修改p的话 ,a的值也会被修改;
2024-01-04 23:40:48 368
原创 c,c++中的const(就近原则)
(2) 指针常量 *const p //表示p为常地址,不可以指向新地址,但p指向地址的值可以修改。(3)const 即修饰指针,又修饰地址 const int * const p。看到这种就看const后面修饰的谁,谁近谁就是常量,(1)常指针 const*p //表示*p为常量,但p可以指向新的地址空间。也就是我们说的就近原则,自己可以测试一下;//表示p和*p都不能修改。
2023-12-31 17:32:12 437
原创 visual c++编译器下的前置++,后置++
a++ : b++ 得 b=6,我们常说先用后加是指在一个语句中,出了语句,立马加1!这段代码中可分为2个语句,语句结束后b立刻++这个我以为是b先用那就是5+2=7。后置++是指该语句结束后再+1。前置++就是执行语句时就+1。
2023-12-11 22:53:29 447 1
原创 原码,反码,补码
反码: 1111 1111 1111 1111 1111 1111 1111 1110。补码:1111 1111 1111 1111 1111 1111 1111 1111。原码: 1000 0000 0000 0000 0000 0000 0000 0001。一般计算机以16进制补码输入(能放更多空间), 以10进制原码输出。转化为16进制就是 f f f f f f f f H。符号位(第一个数为符号位)//反码:原码符号位不变,其余位取反。
2023-12-07 22:05:48 416
原创 使用c语言实现1-1000以内的完数
比如:6/3, 6/2, 6/1, 则 6=1+2+3;完数:一个数除了自己的本身外因子之和等于本身,则为完数。
2023-10-23 22:51:18 1119
原创 使用c语言递归算法实现青蛙跳台阶
分析:当n = 1, 只有1中跳法;当n = 2时,有两种跳法;当n = 3 时,有3种跳法;当n = 4时,有5种跳法;当n = 5时,有8种跳法;题目:(1)一只青蛙一次可以跳上 1 级台阶,也可以跳上2 级。求该青蛙跳上一个n 级的台阶总共有多少种跳法。n>2时,f(n)=f(n-1)+f(n-2);n=1时f(n)==1;n=2时f(n)==2;
2023-09-13 22:14:03 77
原创 使用c语言实现自幂数
自幂数是指一个 n位数,它的每个数位上的数字的 n次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。(1)先求自幂数i的位数n;(3)判断i是不是自幂数;(2)i的每位数自幂;
2023-09-13 20:36:20 1092
原创 使用qsort实现冒泡排序算法,要求从小到大排序
/要求顺序排列,逆序交换即可。//若arr[j]>arr[j+1]就发生交换。//比较arr[j] 和 arr[j+1]大小。
2023-09-03 21:09:09 113
原创 使用qsort函数实现结构体数组的排列
int(*cmp)(const void *,const void *)//函数指针,用来比较待排序数据中的2个元素的函数。//strcmp(str1,str2)表示比较2个字符串,如果str1大于str2,则返回1,等于0,小于则返回-1;void qsort(void *base,//base表示待排序数据中第一个对象的地址;
2023-08-29 21:53:27 365 1
原创 使用c语言实现计算器
int cal(int (*p)(int,int))//此处用函数指针接收,p指向地址即为Add(),Sub(),Mul(),Div()函数的地址。//此处往cal中传的是Add函数的地址,故应用函数指针接收。printf("选择错误,请重新选择:>");printf("退出程序\n");printf("请选择:>\n");printf("请输入2个操作数:>");
2023-08-25 22:48:36 236 1
原创 函数指针,数组指针,指针数组,函数指针数组
/表示一个指针p所指向数组arr[8]数组地址,数组中每个值为int类型;//表示一个数组p[3],里面有三个元素,每个元素均为int *型。总结:先和谁结合就是谁,先和数组结合就是数组,先和指针结合就是指针!再是函数 (*p[])()//切记不可写成 *(p[])()后是数组则有 (*p)[ ]然后是指针则有 *(p[])然后是指针 (*p[])又是函数则有:(*p)()
2023-08-25 22:36:02 75 1
原创 使用c语言实现1!+2!+.........+n!
/注意此处ret必须防放在内部,若放给第一个{}处,则ret不会重新刷新;#define _CRT_SECURE_NO_WARNINGS 1//去除警告宏定义。//ret不可放在此处定义。
2023-08-15 20:11:01 631 1
原创 腾讯面试题:输入一串单词要求单词逐个逆序输出。 如输入:hello beijing 输出:beijing hello
/令start重新指向end+1,即o,再次执行while,reverse语句得到hello。//交换第一个单词得到beijing,此时end指向' '//此处取字符串,可包含空格,scanf在取字符串时遇到空格即停止,故用gtes()函数;//strlen()取字符串个数函数,遇到'\0'停止;//此处令start和end都指向arr首地址;//end从首地址++,直到遇到' '与'\0'停止。
2023-08-14 21:53:52 105
原创 折半查找算法(二分查找算法)
此时right应指向数组最后一个字符下标,此处用sz=sizeof(arr)/sizeof(arr[0])取得数组字节大小,并用right=sz-1,则right指向数组最后一个字符下标。else if(arr[mid]<k)//k在mid右边,令left=mid+1;if (arr[mid] > k)//k在mid左边,令right=mid-1;首先定义一个数组arr[ ]={1,2,3,4,5,6,7,8,9,10};若查找关键字K处于mid左边,则有right=mid-1;
2023-08-11 20:05:23 88 1
原创 c语言实现冒泡排序算法实现数组从大到小排列
此处sz为sizeof(arr)/sizeof(arr[0]),sizeof(arr)取整个数组取整首地址得到整个数组字节大小。先定义一个数组arr[ ]={1,2,3,4,5,6,7,8,9,10};则从小到大需如何遍历了。依次类推可得结论需遍历sz-1次,而内部还需交换sz-1-i次。21345678910 此处1和2交换。23145678910 此处3和1交换再和2交换。
2023-08-09 19:52:59 601
原创 扫雷小游戏源码C语言
static int lei(char mine[ROWS][COLS], int x, int y)//统计雷的数量。printf("输入坐标不合法,请重新输入");for (i = 0;printf("输入错误,请重新输入\n");printf("*****1.开始游戏*****\n");printf("*****0.游戏结束*****\n");printf("请输入要排查的坐标:>");printf("开始游戏\n");printf("退出游戏\n");printf("恭喜你,排雷成功");
2023-08-06 22:13:38 91
原创 用c语言写一个my_strcpy()函数实现strcpy()函数用法
char* my_strcpy(char *arr1, const char *arr2)//此处接收为字符串类型,故返回类型应为char *//打印字符串遇到'\0'则结束,故不继续打印****assert(arr1!//assert表示断言,判断arr1,arr2是否为空,若为空,则运行不通过;//此处const char *arr2为常变量,表示不希望*arr2发生改变,而*arr1会发生改变故不用加const。while (*arr1++ = *arr2++)//++优先级高于*(解引用)
2023-08-06 22:03:13 148
原创 用c语言写一个my_strlen函数实现strlen()函数用法
int my_strlen(const char* str)//const char*str为常变量,即*str不可以改变,但str可以指向新地址。assert(str!//assert,断言,若str为空则报错,方便调试。= '\0')//strlen()函数遇到'\0'则停止。strlen()函数会统计字符串中字符数量,遇到'\0'停止。
2023-08-06 21:30:52 83
原创 使用visualc++2022实现三子棋小游戏
使用visualc++实现三子棋小游戏,废话不多说,上代码,可参考B站比特鹏哥讲解更加!!!喜欢的话就点点赞加关注,感谢!!!!
2023-07-15 22:08:07 180 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人