C语言学习
关于C语言基本知识的学习
进阶的kaola
这个作者很懒,什么都没留下…
展开
-
关于内存问题的几个经典题目
第一道题直接上代码吧void GetMemory(char *p){ p = (char *)malloc(100);}void Test(void){ char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);}int main(){ Test(); return 0...原创 2019-09-05 19:54:31 · 481 阅读 · 0 评论 -
C语言编程 扫雷小游戏
一、扫雷原理:点开一个位置,若是雷,被炸死。若不是雷,统计周围有几个雷并显示出来。二、程序设计思路:存放雷的信息—>布置雷—>排雷1.存放雷的信息:我用字符*表示没有排查的范围,为了方便打印和初始化等操作我用字符1表示雷,字符0表示非雷。我用了两个二维数组分别存放雷的信息和非雷坐标周围雷的个数。2.布置雷:随机数生成坐标。3.排雷:若是雷,被炸死。若不是雷,周围坐标之和...原创 2019-08-25 20:50:56 · 445 阅读 · 0 评论 -
利用函数指针数组实现计算器
前言:把函数的地址存到一个数组中,那这个数组就叫函数指针数组一、这样写是我最初想到的,很明显过于繁琐#include <stdio.h>void menu(){ printf("***** 1.add *********\n"); printf("***** 2.sub *********\n"); printf("***** 2.mul ...原创 2019-08-23 23:02:19 · 315 阅读 · 0 评论 -
求两个数的最大公约数和最小公倍数
1.辗转相除法#include <stdio.h>int main(){ int a = 0; int b = 0; int y = 0; int small_num = 0; scanf("%d %d", &a, &b); while (a%b) { y = a%b; a = b; b = y; } small_num = a*...原创 2019-08-22 22:02:22 · 252 阅读 · 0 评论 -
将参数字符串中的字符反向排列
一、题目描述编写一个函数 reverse_string(char * string)(递归实现)实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。1、方法一:递归实现思路:先将最后字符放到第一个数的地址,为了可以判断下一次交换是否结束,把最后一个字符换为‘\0’ 。再将第二个字符和倒数第二个字符交换后,再将第一个数放到最后一个字符的地址。直到字符串长...原创 2019-08-21 20:31:20 · 509 阅读 · 0 评论 -
指针详解
学习C的过程中,指针可真的令人头秃。。还好我秀发茂密哈哈哈哈哈哈。。不过多理解,多练习,我相信这也不是什么大问题。可惜我还在理解阶段,记录一下我学习理解的内容。目录指针的定义和类型 指针数组 数组指针 数组传参和指针传参 函数指针 函数指针数组 指向函数指针数组的指针 回调函数one.指针的定义和类型1.指针的定义:在计算机科学中,指针(Pointer)是编程语言中的一...原创 2019-09-09 20:50:38 · 652 阅读 · 0 评论 -
自定义类型
结构体结构体声明、定义及初始化struct Stu //声明{ char name[10]; short age;};int main(){ struct Stu s1 = { "张三",20 }; //定义及初始化 return 0;}先说一个熟悉的 int a;在这里,要说明的的是struct Stu是这个结构体的类型,相当于int。s1是这个结构体的...原创 2019-09-04 17:22:04 · 140 阅读 · 0 评论 -
关于表达式求值-隐式类型转换-整形提升问题
前言:表达式求值的顺序一部分是由操作符的优先级和结合性决定。 同样,有些表达式的操作数在求值的过程中可能需要转换为其他类型。 隐式类型转换 C的整型算术运算总是至少以缺省整型类型的精度来进行的。为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。 那么为什么计算的时候要存在整形提升呢?整型提升的意义: 表达式的整型运算要在CPU的相...原创 2019-09-03 18:45:22 · 254 阅读 · 0 评论 -
常用的字符函数和字符串函数
一、分类求字符串长度:strlen 长度不受限制的字符串函数:strcpy、strcat、strcmp 长度受限制的字符串函数:strncpy、strncat、strncmp 字符串查找:strstr strtok 错误信息报告:strerror 字符操作 内存操作函数:memcpy、memmove、memset、memcmp ...原创 2019-08-28 21:09:40 · 3309 阅读 · 0 评论 -
指针和数组的练习
首先做这些练习前我们要明白数组名的意义: 1. sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节。 2. &数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素地址。而地址的大小都是4(32为平台)/8(64位平台)个字节。ps:本篇为32位平台下运行结果一维数组:int a[] =...原创 2019-08-25 23:24:07 · 185 阅读 · 0 评论 -
c语言操作符
一、操作符分类 算数操作符 + - * / % 移位操作符 << >> 位操作符 & | ^ 赋值操作符 = += -= *= /= %= >>= <<= &= |= ^= 单目操作符 ! - + &...原创 2019-08-21 20:00:09 · 89 阅读 · 0 评论