C语言基础
文章平均质量分 69
各种规范及常见错误
檀车 侠影
这个作者很懒,什么都没留下…
展开
-
关于typedef和struct使用过程中的一些思考(2020/12/23更新)
关于typedef和struct使用过程中的一些思考以下内容所记录的内容是自己在编写ADT工具类时遇到的问题,做出一些记录,好记性不如烂笔头以下内容如有错误的地方还望不吝赐教1、C与C++中关于typedef和struct的使用辨析:题目案例1:C中定义结构体类型(简洁版 少写了类名)typedef struct { ···}Sqlist, Linklist, SqStack;注意:需要说明的是 在此处 Sqlist, Linklist, SqStack都是同一种数据类型,原创 2020-12-23 17:49:40 · 829 阅读 · 0 评论 -
关于空指针做函数参数和多级指针的使用问题
引入: 在主函数中只是定义了一个空指针p,如何才能通过子函数的调用来完成修改p的内容示例代码1:#include<stdio.h>#include<stdlib.h>// 因为刚开始p什么都没有指向(但是p是占有一片内存空间的,只是其中的内容为NULL),所以直接把p的内容传进子函数赋值是没有意义的,相当于在子函数中改变了指向了一片新的存储空间,修改的是新的存储空间的内容,主函数中p指向的内容并没有改变(相当于有创建了一个指针修改了不相关内存的内容)// 解决方法之一是.原创 2020-06-25 15:18:55 · 708 阅读 · 1 评论 -
C语言的取模运算
在此分为两种情况鉴于翻阅其他平台的回答发现还是有大部分的回答存在“幸存者偏差”经过初步分析发现特别是存在负数时取模运算其实在最开始就应该把除数变为0或者1的情况才能完全适配以下公式:当都是正整数时:除法实际可转化为减数,不够减时剩下的就是余数。例如:12%512-5-52当存在负数时: x%yi. 当异号时:if |x|>|y|result: x+yelseresult: x例:-6% 5等于-16%-5等于 15%-6等于 5-5% 6等于 -5ii. 当同号原创 2020-05-13 23:39:03 · 7744 阅读 · 0 评论 -
编写有多个返回值的C语言函数
1引言 笔者从事C语言教学多年,在教学中学生们常常会问到如何编写具有多个返回值的C语言函数。编写有多个返回值的函数是所有C语言教材里均没有提到的知识点,但在实际教学与应用的过程中我们都有可能会遇到这样的问题。有学生也尝试了不少方法:如把多个需要返回的值作相应的处理后变成一个可以用return语句返回的数据,再在主调函数中拆开返回的数据使之变成几个值;或者把需要返回多个值的一个函数分开几个函数去实现多个值的返回。这些方法虽然最终都能实现返回要求的多个值,但从程序算法的合理性与最优化方面去考虑,显然不转载 2020-06-18 21:15:57 · 220 阅读 · 0 评论 -
C语言复习笔记 :6-1 建立学生信息链表(无表头,链表基础,指向)
6-1 建立学生信息链表(无表头,链表基础,指向)2020.06.18 第一次修改如何将输入的数据组织成一张链表待解决问题:C/C++中,多个指针指向同一个内存,只能free一次当地址被释放以后,其他指针都要置为NULL,否则很容易出现野指针异常的文章目录**6-1** **建立学生信息链表**(无表头,链表基础,指向)如何将输入的数据组织成一张链表函数接口定义:裁判测试程序样例:输入样例:输出样例:分析:解题思路:每次输入一组数据就利用动态存储分配函数建立一块存储空间,直到遇到0就原创 2020-06-18 19:22:55 · 1089 阅读 · 1 评论 -
scanf函数和回车、空格 及其返回值
scanf和回车的关系:先看一个我们经常使用的代码: char c; scanf("%c", &c); scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s和%c却会出现各种各样的问题,比如回车问题,空格问题等。我们已经习惯了上面的代码,再看下面存在连续输入时的情况: int i; char c; scan转载 2020-06-15 20:33:43 · 4636 阅读 · 0 评论 -
C语言void关键字
一、void a?void 的字面意思是“空类型”,void *则为“空类型指针”,void *可以指向任何类型的数据。void 几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void 变量,看看下面的例子:void a;Visual C++6.0 上,这行语句编译时会出错,提示“illegal use of type ‘void’”。不过,即使void a 的编译不会出错,它也没有任何实际意义。void 真正发挥的作用在于:对函数返回的限定;对函数参数的限定。众所周知,如果指针转载 2020-06-14 11:38:32 · 284 阅读 · 0 评论 -
scanf函数%c前为什么加空格才能正常输出
#include <stdio.h>int main (void) { int i ; char ch ; scanf("%d",&i) ; scanf(" %c",&ch) ; //这行的%C前有个空格 printf("i = %d\nch = %c\n", i, ch) ; /* 输入100 y 后的输出结果: i = 100 ch = y */ return 0 ;}前面有空格,表示读一字符前要跳过 前面 所有 的空..转载 2020-05-09 14:39:58 · 1737 阅读 · 0 评论