c基础
Annnnie?
如果这里是美食帖,那么不论你是做什么的,也许都有吃东西的需求
展开
-
动态内存分配函数malloc、calloc和realloc的介绍
动态内存分配函数malloc、calloc和reallocC语言提供的动态内存开辟函数:1、malloc和free2、calloc动态内存分配函数3、malloc和calloc的区别4、realloc函数C语言提供的动态内存开辟函数:1、malloc和freevoid* malloc (size_t size);这个函数向内存申请一块连续可用的空间,并返回指向这块空间的指针。若开辟成功,则返回一个指向开辟好空间的指针。若开辟失败,则返回一个NULL指针,因此malloc的返回值一定要做检查。原创 2020-12-08 20:37:02 · 306 阅读 · 2 评论 -
数组指针、函数指针与函数指针数组
指针知识梳理一、字符指针二、数组指针三、函数指针与函数指针数组函数指针数组一、字符指针char *代码 char* pstr = “hello world.”; 本质是把字符串 hello world. 首字符的地址放到了pstr中。即把一个常量字符串的首字符 h 的地址存放到指针变量 pstr 中。二、数组指针那数组指针应该是:能够指向数组的指针&数组名VS数组名:对于 int arr [20] ;&arr 表示的是数组的地址,而不是数组首元素的地址。(细细体会一下)数原创 2020-12-07 15:27:25 · 1414 阅读 · 1 评论 -
模拟实现memcmp,memmove函数
模拟实现memcpyvoid * memcpy(void * dst, const void * src, size_t count){ void * ret = dst; assert(dst); assert(src); while (count--) { *(char *)dst = *(char *)src; dst = (char *)dst + 1; src = (char *)src + 1; } return(ret);}模拟实现memmovevoid原创 2020-12-07 14:26:35 · 227 阅读 · 2 评论 -
模拟实现字符串函数strlen,strcpy,strcmp,strcat,strstr
//计数器方式int my_strlen(const char * str){ int count = 0; while(*str) { count++; str++; } return count;}//不能创建临时变量计数器int my_strlen(const char * str){ if(*str == '\0') return 0; else return 1+my_strlen(str+1);}方式3://指针-指针的方式int my_s原创 2020-12-07 11:35:24 · 203 阅读 · 1 评论 -
字符串的旋转 C语言
字符串旋转的实现实现一个函数,可以左旋字符串中的k个字符。写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。实现一个函数,可以左旋字符串中的k个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB思路1:设计循环使其可以旋1次,然后让他执行n次void leftRound(char * src, int time){ int i, j, tmp; int len = strlen(src); time %= len; //长度为5的情况下,旋转6、11、原创 2020-11-30 21:00:52 · 245 阅读 · 1 评论 -
数据在计算机内存中的存储及计算机大小端的存储
@[TOC]数据在内存中的存储数据在内存中的存储数据在内存中的存储一、数据类型介绍二、整形在内存中的存储:原码、反码、补码三、计算机大小端四、浮点型在内存中的存储数据在内存中的存储一、数据类型介绍1、整型家族:char : unsigned char , signed charshort : unsigned short [int], signed short [int]int : unsigned int, signed intlong : unsigned long原创 2020-11-30 11:25:10 · 361 阅读 · 1 评论 -
猜名次代码实现之C语言
5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果:A选手说:B第二,我第三;B选手说:我第二,E第四;C选手说:我第一,D第二;D选手说:C最后,我第三;E选手说:我第四,A第一;比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。思路1:考虑到一共五个人,直接模拟推理有些太难,计算机最擅长的遍历此时就会派上用场,将每个人从第1到第5来一遍,则一共会产生5^5种可能性,这个只需要一个5层循环即可搞定。但是这样会导致一些不期望出现的结果出现,因为我并没有查重,所以会出现两个人抢名次的原创 2020-11-23 11:27:23 · 553 阅读 · 2 评论 -
杨辉三角代码C语言
#include <stdio.h>#include <windows.h>#define N 14int main(){ int n=10; int i, j, k, a[N][N]; for (i = 1; i <= n; i++){ a[i][1] = a[i][i] = 1; } for (i = 3; i <= n; i++){ for (j = 2; j <= i - 1; j++){ a[i][j] = a[i - 1原创 2020-11-22 20:06:05 · 421 阅读 · 0 评论 -
三子棋游戏之C语言
游戏菜单栏,选择1;进入游戏;玩家下棋:输入坐标:电脑自动完成下棋;玩家继续;输入错误的坐标,提示棋子存在或输入坐标错误;完成三子连珠,结束游戏;返回菜单栏;C语言实现代码:源文件:#include "game.h"void Menu(){ printf("############################\n"); printf("## 1.Play 2.Exit ##\n"); printf("######################原创 2020-11-01 22:09:10 · 73 阅读 · 0 评论 -
二分法查找有序数列的数字C语言
#include <stdio.h>#include <windows.h>int main(){ int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12 }; int ans = 9; int left = 0; int right = sizeof(arr) / sizeof(arr[0])-1; while (left < right){ int mid = (left + right) / 2; if (a原创 2020-10-16 17:04:09 · 241 阅读 · 0 评论 -
C语言之猜数字游戏
程序如下:主函数main.c: #include <stdio.h>#include <windows.h>#include "game.h"#pragma warning(disable:4996)void menu() { printf("**********************************\n"); printf("*********** 1.play **********\n"); printf("...原创 2020-10-16 16:16:16 · 205 阅读 · 0 评论 -
c打印出乘法口诀表
#include <stdio.h>#include <windows.h>int main(){int i = 0;int j = 0;int s = 0;for (i = 1; i <= 9; i++){for (j = 1; j <= i; j++){s = i*j;printf("%d * %d = %d", i, j, s);}printf("\n");}system ("pause");return 0;}原创 2020-10-14 17:19:19 · 83 阅读 · 0 评论 -
求十个整数最大值
int main(){int i;int max;int a[10] = { 3, 4, 5, 6, 7, 8, 9, 44, 43, 42 };max = a[0];for (i = 0; i < 10; i++){ if (a[i]>max) { max = a[i]; }}printf("%d\n", max);system ("pause");return 0;}原创 2020-10-14 17:05:51 · 101 阅读 · 0 评论 -
计算1/1-1/2+1/3-1/4。。。 - 1/100 的值
#include <stdio.h>#include <windows.h>int main(){int i = 0;double sum = 0.0;int flag = 1;for (i = 1; i <= 100; i++){sum += flag*1.0/i;flag = -flag;}printf(" %1f\n",sum);system (“pause”);return 0;}原创 2020-10-14 16:48:30 · 203 阅读 · 0 评论 -
c打印100-200之间所有的的素数
#include <stdio.h>#include <windows.h>int main(){int a = 2;int i = 0;for (i = 100; i <= 200; i++){for (a = 2; a<i; a++){if (i%a == 0)break;}printf(" %d", i);}system (“pause”);return 0;}原创 2020-10-14 16:16:50 · 74 阅读 · 0 评论 -
打印1000-2000年间的所有闰年
打印1000-2000年间的闰年#include <stdio.h>#include <windows.h>int main(){int year=1000;for(year=1000;year<=2000;year++){if(year%40&&year%100!=0){printf("%d\n",year);}else if (year%4000){printf("%d\n",year);}}system (“pause”)原创 2020-10-14 11:34:55 · 226 阅读 · 1 评论