问题记录

问题记录

2020/3/29

在这里插入图片描述
问题:这道题的“p所指的结点之前插入一个结点q”不是说在p结点后面插入q吗,为什么答案是“在p结点之前插入q”呢

个人观点:画图较为直观,只要保证在操作的过程中不断链即可
在这里插入图片描述

2020/4/14

问题:如下图,为什么-1可以赋值给char类型变量?
在这里插入图片描述
在这里插入图片描述
个人观点:

char数据类型表示字符型,长度为1个字节,表示范围为-128 ~ +127,其中-1在其中,但是计算机中的数字都是0-1二进制,所以需要将字符转化为对应的数字存储,这就涉及到我们说的ASCII码了;char c = -1 表示ASCII码=-1的字符。char c = -1 表示ASCII码=-1的字符
  至于ASCII码取值为正,为啥给个负值也行,我去查了下,给你看下一个博主的解释,大概认为是文件结尾EOF(End of file)

那么ASCII码中的-1表示什么含义呢?百度“ASCII码值-1什么含义”并没有答案,
我发现这个字符出现的位置是文件结尾,我想到EOF字符,这次百度给出了答案,
在C标准库中,像getchar这样的数据读取函数返回一个与符号(宏)EOF
相等的值来指明文件结束的情况发生,EOF的真实值与不同的平台有关
(但通常是-1,比如在glibc中),并且不等于任何有效的字符代码。
块读取函数返回读取的字节数,如果它小于要求读取的字节数,就会出现一个文件结束符。

我的理解是:ASCII码的值确实是非负的,但是在C/C++标准库中,宏定义#define EOF -1,
用在读文件的时候(如fscanf、fgetc、fgets等),因为字符的值(ASCII码值)一定非负,
C/C++语言采用这种方式标记文件的结尾。
————————————————
版权声明:本文为CSDN博主「飞翔的狍子」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:[https://blog.csdn.net/Hello_World1023/article/details/85118446](https://blog.csdn.net/Hello_World1023/article/details/85118446)

2020/4/16

关于结构体定义(以链表为例):

typedef struct LNode
//注意这里的struct Lnode是一个整体,表明Lnode是一个结构体类型,
//把struct Lnode重定义为Lnode,以后就自可以不用写struct了,
//直接使用Lnode定义结构体变量或指针等等。
{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;

结构体的主体定义为struct 结构名 {结构成员表}LNode;即把结构名和成员统一起一个外号为LNode

其中typedef声明是给结构体声明了另外一个别名LNode,
(typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名, 在结构体定义,还有一些数组等地方都大量的用到,这里LNode和*LinkList都是struct LNode的别名。)

typedef struct LNode 
{
	ElemType data;
	struct LNode *next;
}LNode;
typedef struct LNode *Linklist;

上述语句等价于:

struct LNode { int data; struct LNode *next;} ;
typedef struct LNode LNode;				//直接起别名
typedef struct LNode *LinkList;			//设置一头指针指向LNode

问题:结构体定义中的LNode可以省略吗?
个人观点:不可以。
1、一方面strcut LNode是一个整体不可分割;
2、另一方面结构体内部中struct Lnode *next;还会用到LNode,所以必须提前声明

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李霁明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值