9号信箱
这个作者很懒,什么都没留下…
展开
-
【C语言学习疑难杂症】第20期:0x00007FF7F2821964处引发的异常0xC0000005写入位置 0x0000000000000
检查代码中是否存在野指针访问的情况,确保在进行写入操作之前,内存已经被正确分配或初始化,并且在使用完毕后进行了正确的释放。空指针访问:代码尝试在空指针地址(0x0000000000000000)处进行写入操作,导致访问冲突。检查代码中是否存在数组越界的情况,确保在进行写入操作之前,数组的索引值在合法范围内。检查代码中是否存在空指针访问的情况,确保在进行写入操作之前,指针已经被正确初始化。野指针访问:代码尝试在已释放或未初始化的内存地址进行写入操作,导致访问冲突。原创 2024-04-10 11:38:33 · 284 阅读 · 0 评论 -
【C语言学习疑难杂症】第19期:fabs和abs的用法,以及注意事项
比如要计算一个浮点数的绝对值,误用了abs函数,由于浮点数作为参数传递给abs,而abs的参数是一个int类型,就会造成浮点数小数点后的值的丢失,并且返回值也是一个整数,自然得到的结果也就错了。fabs和abs是两个不同的函数,用于计算数值的绝对值。分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。通过上面的描述,我们也可以比较容易的知道,如果两个函数用错了,就会容易出错。原创 2024-04-10 11:31:43 · 748 阅读 · 0 评论 -
【C语言学习疑难杂症】第17期:如果一个函数定义的有返回值,但是实际函数没有给返回值,会有什么现象呢?
我们也可以看到,如果不给返回值,就可能造成一些意外的情况发生。所以为了养成一个比较好的编码习惯,我们也应当在这些对应的函数里加上返回值。在很多环境下,我们定义的函数有返回值类型,而我们实际的函数如果不给返回值的话,一般是会有警告的,首先。分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。对于上述函数定义的有返回值,但是实际函数没有给返回值的情况,一般是。这个代码在vs2022下测试结果为1。,比如说给了一个默认的返回值。这个代码测试的结果为0。原创 2024-04-10 11:09:25 · 335 阅读 · 0 评论 -
【C语言学习疑难杂症】第18期:一个90%的人都会做错的C语言题目,附详细解析
分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。按照%x输出时,还会发生整型提升为0000 0000...0101 1001。然后0xf是二进制的0000 0000...0000 1111(32位)16进制的95是二进制的1001 0101。然后a & oxf0,会发生整型提升。然后a & oxf,会发生整型提升。赋值给b,发生截断,得到。赋值给c,发生截断,得到。原创 2024-04-10 11:13:25 · 195 阅读 · 0 评论 -
【C语言学习疑难杂症】第16期:对于浮点数,如何根据用户输入设置浮点数的输出宽度和小数点后显示位数
疑难杂症】专栏说明:分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。首先,我们先简单回顾下,如何输出一个浮点数,宽度为5,小数点后显示2位?因为默认是右对齐,所以输出是3的前面会有一个空格。原创 2024-03-05 18:43:53 · 144 阅读 · 0 评论 -
【C语言学习疑难杂症】第15期:如何用C语言fseek等函数,计算一个文件的大小
假设有一个文件,名为 helloworld.txt,现在需要统计这个文件的大小,我们应该怎么做?分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。该函数返回当前文件指针相对于文件起始位置的偏移量,即当前位置距离文件开头的字节数。分享C语言阶段一些容易被大部分同学忽略的重点、难点知识,帮助C语言知识学习的拔高。是 C 语言中用于文件操作的两个函数,它们通常与。字节为偏移量的位置,相对于。该函数将文件指针定位到以。原创 2024-02-21 16:44:28 · 109 阅读 · 0 评论 -
【C语言学习疑难杂症】第14期:C语言文件读写相关函数的使用
在上述示例中,我们首先使用fopen函数打开一个名为example.txt的文件,并将返回的文件指针存储在file变量中。在后续的调用中,将第一个参数设置为NULL,以便继续分割剩余的字符串。需要注意的是,sscanf和sprintf函数都是基于格式化字符串的输入输出函数,因此在使用它们时,要特别注意格式字符串的正确性和与要处理的数据的匹配性,以避免潜在的错误和安全问题。需要注意的是,在使用fread函数读取字符串时,需要确保读取的字节数不超过缓冲区的大小,并且在读取的数据末尾手动添加字符串结束标志\0。原创 2024-02-21 16:28:21 · 69 阅读 · 0 评论 -
【C语言学习疑难杂症】第13期:99%的同学没有搞清楚的C语言scanf读取使用问题
由于对于我们的输入,只把3读取了,.14还留在了缓存区,这也就导致了,我们根本没有第二次输入的机会,scanf会直接在缓存区里读取出遗留的部分,也就是.14,但是此时需要读取的是一个int类型,所以不符合读取,于是读取失败,返回0。在上述情况中,如果你的格式化字符串只包含一个整数读取指令(如 %d),scanf 会返回 1,因为它成功地从输入中读取并转换了一个项目,即使这个项目只是用户输入浮点数的整数部分。对于这样的代码,如果我们第一次输入一个浮点数,比如3.14,那么整个程序的运行结果是什么样的?原创 2024-02-21 14:51:21 · 773 阅读 · 1 评论 -
【C语言学习疑难杂症】第12期:如何从汇编角度深入理解y = (*--p)++这行代码(易懂版)
这个代码看似简单,但是在“y = (*--p)++;”这行代码里,编译器做了很多工作。前6行就不讨论了,简单的说就是它把指针往前移动一个位置,然后解引用把里面的值赋值给y。但是后面的部分,也就是从第7行开始,我们需要重点理解。对于如下代码,思考一下输出结果是什么?原创 2023-12-26 22:35:39 · 1378 阅读 · 2 评论 -
【C语言学习疑难杂症】第11期:字符串字面值常量赋值给指针变量或者数组,90%的人都会出错的一道题目
虽然C++兼容了C语言,但是在语法层面上, 还是有很多需要注意的点,所以在使用对应的语言的时候,也要特别小心。提问:对于上述4行代码,在c语言和c++环境中,分别都有哪些是正确的?对于这个题目,一定要先思考下,看看自己是不是真的理解了!原创 2023-12-26 22:15:27 · 545 阅读 · 0 评论 -
【C语言学习疑难杂症】第10期:%g 和 %f的使用和区别
格式控制符会根据浮点数的精度自动选择使用 %f 或 %e(指数表示法)来输出。它会自动省略小数点后面的多余零,并且对于较大或较小的数会使用指数表示法。例如,对于浮点数 3.140000,使用 %g 输出时会显示为 3.14。格式控制符会保留小数点后面的所有零,不会进行舍入或省略。例如,对于浮点数 3.140000,使用 %f 输出时会显示为 3.140000。%g 和 %f 都是C语言中的格式控制符,用于格式化输出浮点数。它们的区别在于对于小数点后面的零的处理方式。原创 2023-12-03 17:03:56 · 1985 阅读 · 0 评论 -
【C语言学习疑难杂症】第9期:关于%*s以及%*d等的使用
对于第三种情况,必须要输入空格后的第二部分内容。因为%*s它没有限定忽略的长度,所以它会遇到你输入一个空格后才结束,然后把0读进去,给到b变量。上面前面两种例子里,诸如%2d,它是从输入中读取2位的宽度作为一个整数,%*3s,则是用于过滤3个宽度的输入字符。关于%*s的使用的一些问题。原创 2023-12-03 16:56:04 · 490 阅读 · 0 评论 -
【C语言学习疑难杂症】第8期:VS2022中输出时中文乱码的问题
运行-输入intl.cpl-管理-系统区域设置,取消勾选beta版,和改简体中文中国并重启。如果已经是,可以改英语并重启,再改回简体中文再重启。在VS2022中输出中文乱码的问题通常是由于编码设置不正确导致的。原创 2023-12-03 12:28:16 · 5528 阅读 · 0 评论 -
【C语言学习疑难杂症】第7期:函数参数的处理过程
=比较b和c,上次计算b已经为3了,c也为3,所以相等,表达式值为真,结果为1,1赋值给a,a为1,表达式结果为1。b==c因为b和c的结果不同,所以这个表达式结果为假,即0。再判断a==0,a为1,所以两值不等,整个表达式结果为0。在最后一次处理结束后,此时a变量里面的值,已经变成了3,因为最后两步都是打印a的值,所以最终结果是3 3 0 0。首先把c赋值给b,所以b此时结果为3。小括号表达式结果也为3,a==3为假,结果为0。连续赋值,a的结果最后为3。原创 2023-11-30 14:54:05 · 420 阅读 · 0 评论 -
【C语言学习疑难杂症】第6期:C语言中如何打印一些特殊字符,比如打印扩展ascii码字符
它不会影响显示的扩展字符的控制台字体名为"光栅字体。若要更改的 256 个 8 位字符值映射到标志符号的一种固定间距 Unicode 字体设置,而不是加载一个单独的、 非-Unicode 字体的每个调用 SetConsoleOutputCP() 设计 SetConsoleOutputCP()。ascii表中的字符只有128个,是从0-127,而拓展ascii表的内容是128-255。拓展表中它们都是一些特殊的字符,如果我们想答应ascii拓展码中的一些字符应该要怎么操作呢?函数介绍:(来源:百度百科)原创 2023-11-30 14:30:02 · 1655 阅读 · 0 评论 -
【C语言学习疑难杂症】double类型数据输入输出时应该使用什么格式
在输入的时候,很多朋友总是错误的使用%f来读取一切浮点数类型,包括单精度的float和双精度的double类型。首先,使用"%f"格式符来输出double类型的变量是没有问题的,因为C语言的标准规定了"%f"用于输出浮点数(包括double类型)。虽然在某些编译器中,使用"%lf"格式符也可以正确输出double类型的值,但这是因为这些编译器对"%lf"和"%f"都进行了兼容处理。因此,为了保持代码的规范性和可移植性,建议在输出double类型的值时使用"%f"格式符。输出double类型时,使用%f。原创 2023-11-30 11:18:37 · 9932 阅读 · 2 评论 -
【C语言学习疑难杂症】C语言中数组存储时为什么从低地址到高地址
其中,base_address是数组的基地址(即数组在内存中的起始地址),i是元素的下标,element_size是每个元素的大小(以字节为单位)。数组在内存中是连续存储的,因此数组的第一个元素(下标为0)存储在最低地址,而最后一个元素(下标为数组长度-1)存储在最高地址。由于数组元素在内存中是紧密相邻的,访问数组时,可以通过简单的加法计算得到所需的元素地址。总之,C语言中数组从低地址到高地址的存储顺序是为了与计算机系统的内存组织方式相吻合,使得数组访问更加高效,并且与指针的偏移量计算方式保持一致。原创 2023-11-30 11:23:24 · 1644 阅读 · 0 评论 -
【C语言学习疑难杂症】error C4996: ‘scanf‘: This function or variable may be unsafe
最近有很多同学表示,在使用scanf这个函数的时候出现了下面这样的错误,对于初学的同学来讲,不知道如何解决。不知道大家有没有同样的情况。原创 2023-07-25 08:00:00 · 1835 阅读 · 1 评论 -
【C语言学习疑难杂症】Stack arround the variable was corrupted问题
提出问题:在开启正文之前,我们先看这样一个例子。我们重点看这个弹出的Debug Errir框,中间划红线的部分,它报了这样一个错误。首先,我们特别强调一个问题就是,这个问题可能会在很多同学以后的学习中经常遇到,所以请务必重视这个问题。解决办法:对于这个问题,我们还是先回到这个案例中来,我们先来看看这位同学的代码出现了什么问题。首先,大家重点关注,代码中划红线的部分:定义了一个整型数组,含有5个元素。接下来,这位同学干了一件事,首先给j赋值5,这样就有一个b[5],这时候我们再回过原创 2021-08-21 17:50:27 · 2643 阅读 · 0 评论 -
【C语言学习疑难杂症】vs编译器输出ascii字符时显示为一个方框?
提出问题:我们知道,ascii字符分为一些可见字符和不可见字符,如果我们打印不可见字符,没有显示出来很正常,但是如果打印可见字符而出现了一些奇奇怪怪的现象,比如下图:我需要打印,一个"->",即向右的箭头,但是出现了下图这样的方框解决办法:鼠标右键点击运行出来的黑框的标题栏选择属性->字体->点阵字体这样箭头就出来了。...原创 2021-08-20 12:18:36 · 4945 阅读 · 1 评论