首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么put()在C语言的输出上打印一些无用的值

在C语言中,put()函数是用于将一个字符写入到标准输出(屏幕)的函数。当使用put()函数时,在输出的结果中可能会出现一些无用的值,这是由于put()函数的工作原理以及C语言的内存管理机制所导致的。

put()函数的原型如下:

代码语言:txt
复制
int put(int c);

它接受一个整数参数c,代表要输出的字符的ASCII码。在C语言中,字符在内存中实际上是以整数的形式表示的,所以put()函数可以接受一个整数作为字符参数。

当put()函数被调用时,它会将指定的字符写入标准输出。然而,在某些情况下,由于C语言的内存布局和数据对齐等原因,put()函数可能会在输出结果中显示一些无用的值。

这些无用的值通常是存储在字符参数c之前或之后的内存中的其他数据。在C语言中,变量的内存是按照特定的规则进行分配和管理的,如果在调用put()函数时没有正确地初始化或分配内存,那么put()函数可能会读取或输出这些无用的值。

为避免put()函数输出无用的值,我们应该确保在调用put()函数之前,正确地初始化和赋值字符参数c,以及确保在调用put()函数之前,没有其他无关的内存操作干扰输出结果。

总结起来,put()函数在C语言的输出上打印一些无用的值是由于C语言的内存管理机制和put()函数的工作原理所导致的。要避免这种情况发生,需要正确地初始化和赋值字符参数c,以及确保没有其他无关的内存操作干扰输出结果。

(注意:本回答中不提及腾讯云相关产品,如需了解腾讯云相关产品,请访问腾讯云官方网站。)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C语言指针在哪里?SRAM

电脑里面有三种cache,可以看到L1最小,L3最快 大小 量相差很大 这是我自己电脑实测,最慢反而是内存,算完是58.49G/s,L1居然到了2K G这个速度,L3是内存大概3倍多。...RAM掉电数据会丢失,RW-data是非0初始化数据,已初始化数据需要被存储掉电不会丢失FLASH中,上电后会从FLASH搬移到RAM中。...虽然SRAM速度更快,读写时间也更短,但SRAM成本较高,所以存储器容量较小情况下,通常使用SRAM,而对于大容量存储器,则使用SDRAM。...2.可将一些时序关键代码放入 IRAM,以减少从 flash 中加载代码造成相关损失。...放入该部分启动时不会被初始化,软件重启后也会保持不变。

11510

C语言函数为什么只能有一个返回输出?怎么实现多个输出?

这是典型C语言中函数模块中返回问题,算是常见语法细节,很多人觉得C语言已经过时了,只能代表着这类人还不算是真正技术人员,嵌入式领域C语言依然充当着非常重要角色,C语言很多领域还是首选编程语言...具体功能实现,最后是结果输出,也就是这个题目的返回正常情况下函数返回只有一个,但在实际编程中需要用到多个,设计时候还是归结成一类,如果类型相近可以弄成数组方式,如果类型不太一致直接放在结构体中执行...,如果函数返回是个指针的话,就能把整个结构体里面的内容返回出来,同样能够达到返回多个数值作用,这种平常编程过程中用最多,C语言中使用最频繁关键点就是指针了,但也是很多初学者最不好理解知识点...数组C语言中用也是非常多,数组一定层面上其实和指针功能差不多,只不过使用时候不如指针使用灵活方便。...很多在刚开始学习C语言初学者,因为项目经验不多,可能喜欢玩一些文字游戏,比如返回多个这样题目,实际项目中用时候还是以实用为主,还要根据实际情况,毕竟在实际项目中怎么去做选择空间非常大,以稳定和实用为主

7.4K30
  • C语言free释放内存后为什么指针里不变?竟然还可以输出?

    今天你家范儿给大家带来一个东西——关于C语言为什么释放指针后,指向这块内存指针不变问题编程经验!!行了,咱们话不多少,直接上主食。...诸位,可得细看呦~ 想必大家都知道C语言中动态开辟内存之后,必须要释放内存,来防止内存泄露。也就是malloc之后,必须要free。...正所谓”有借有还,再借不难”, 不少同学会问为什么释放指针后,指向这块内存指针不变呢,我们今天为大家揭秘。...下图可以看到,VC6编译环境下,观察指针p指针所指向内容已经被strcpy后改变。 ?...下一步free函数,我们选择F11单步介入观察,幸运VC6中可以看到源代码,如下图,会进入到DBGHEAP.c文件中,会调用_free_dbg函数,继续F11介入观察代码 ?

    2.6K80

    为什么招聘网站上看到招聘JAVA很多,而C语言C++相对很少?

    这个标准是国内标准看,如果放在全球范围内这三种编程语言还依然还是排名前三名,但现在编程语言有个大趋势已经不可逆了,就是集成化编程语言流行,符合这种特质java和python,python好像集成度更加高一些...就现在实际情况看C/C++还在发挥极其重要作用,现在很多客户端软件以及服务器开发都离不开这两种编程语言,只不过不像java语言这么火热,现在很多底层开发语言职位薪资也是非常高,而且入门门槛也非常高...,因为门槛高很多人做不了导致索性现在很多人就不作为入行编程语言了,毕竟入行找个更加简单点工作会更好一些,现在大学生喜欢做一些简单化东西,即使现在流行的人工智能底层性能影响也是这两种编程语言。...从全球范围看很多C/C++一些核心技术层面使用范围还是非常广泛,特别是一些涉及到核心技术CA认证等等都是这两种语言,所以不要觉得这两种编程语言已经退出历史舞台了,而且国内软件发展这么多年,还有很多核心技术还没能掌握...,很多人花了几万块钱参加培训做了一段时间发现压根不是自己想做工作,中间选择了放弃,所以不要看别人都去报班了自己也跟着去了,结果弄到最后发现不是自己需要工作,很多人觉得C语言已经没有市场了,从市场需求关系看

    1.4K20

    C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 | 函数中 间接修改 指针变量 | 函数中 间接修改 外部变量 原理 )

    文章目录 一、直接修改 和 间接修改 指针变量 二、函数中 间接修改 指针变量 三、函数中 间接修改 外部变量 原理 一、直接修改 和 间接修改 指针变量 ---- 直接修改 指针变量...p = &a; // 打印一级指针地址 printf("%d\n", p); // 将一级指针地址赋值给二级指针 p2 = &p; // 间接修改指针...return 0; } 执行结果 : 二、函数中 间接修改 指针变量 ---- 函数 中 间接修改 指针变量 , 将 指向一级指针 二级指针 变量 , 传递到 函数形参 中 ,...// 将一级指针地址赋值给二级指针 p2 = &p; // 间接修改指针 *p2 = 12345678; // 打印一级指针地址 printf("%d\...n", p); // 函数中 , 简介修改指针 modify_pointer(p2); // 打印一级指针地址 printf("%d\n", p);

    21.2K11

    C 语言】数组 ( 验证二维数组内存是线性 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组和地址 )

    文章目录 一、验证二维数组内存是线性 1、打印二维数组 2、以一维数组方式打印二维数组 3、打印二维数组和地址 二、完整代码示例 一、验证二维数组内存是线性 ---- 验证二维数组内存是线性...: 验证方法如下 ; ① 给二维数组赋值 , 然后 打印二维数组 ; ② 使用 一维数组 方式打印二维数组 ; ③ 打印出二维数组 地址 ; 1、打印二维数组 打印二维数组..., 按照顺序打印 , 这个打印顺序正好是数组排列顺序 ; /** * @brief print_array 打印二维数组 * @param array */ void print_array...array as one-dimensional array : 0 : 0 1 : 1 2 : 2 3 : 3 4 : 4 5 : 5 3、打印二维数组和地址 打印二维数组元素和地址 , 其地址是连续...print_array(array); // 使用一维数组方式打印二维数组 print_array2(array); // 打印二维数组和地址

    2.5K20

    C语言】“分⽀与循环第一章:开启创新之门,探索无尽可能性第一篇章“

    前言 C语言是一种结构化程序设计语言,其中包含三种结构:顺序结构、选择结构和循环结构。要实现分支结构,可以使用if和switch,而实现循环结构则可以使用for、while和do while。...那C语言中又怎么表示呢?这里就需要 if...else... 语句了: if ( 表达式 ) 语句1 else 语句 例⼦:⼊⼀个整数,判断是否为奇数,如果是奇数打印是奇数,否则打印数偶数。...不管是>=18 还是⼩于18,"可以交谈恋爱了"都会打印屏幕上。...因此,在编写代码时,请注意括号使用,以提高代码可读性。 二、switch语句 除了if语句,C语言还可以用switch语句来实现分支结构。...2.3 switch语句中default 使⽤switch语句时候,使⽤比如switch 后表达式中⽆法匹 配代码中case 语句时候,这时候要不就不做处理,要不就得 switch

    12110

    tair(四)–命令

    /tairclient –c configserver:port –g groupname –v 说明:按照上述命令连接后,进行put以及get操作时候,每次都会打印一些调试信息。 ....TAIR>提示符下 get 作用:根据key获取对应数据 说明:输出如下帮助信息。...TAIR>提示符下 stat 作用:输出一些统计信息。 说明:输出一些状态信息,包括DataServer上不同命名空间一些统计信息,如get、put次数,占据空间大小等。...area: 指定某个命名空间,默认为0。 TAIR>提示符下 delall area 作用:移除指定命名空间全部内容。 说明:area: 指定命名空间。...-h: 输出上述帮助信息 -V: 输出版本信息 四、parameter_printer 说明:输出一些参数设置,如key最大长度,area最大等。

    43020

    C语言】函数系统化精讲(一)

    前言 函数概念: 函数是数学中概念,可以用来描述线性关系,如一次函数y=kx+b。 C语言中,函数是一小段代码,用来完成特定任务,可以通过给定输入参数得到输出结果。...C语言程序由多个小函数组成,可以将复杂计算任务分解成更小函数来完成,提高代码可读性和可维护性。 函数C语言中具有特殊书写和调用方式,可以通过函数名和参数列表来调用特定函数。...所以结果无法确定,可能是任意。 ==注:==虽然add函数中没有明确返回,但是实际运行时,根据编译器和操作系统不同,程序可能会出现一些不同行为。...在你编译器和操作系统下,可能出现了一种情况,即在add函数中,局部变量c初始恰好是3,所以main函数中打印出来是3。...printf函数返回打印屏幕上字符个数。 上⾯例⼦中,我们就第⼀个printf打印是第⼆个printf返回,第⼆个printf打印是第三个 printf返回

    10710

    C语言】递归详解

    1.前言 这次博客内容是与递归有关,递归是学习C语⾔函数绕不开⼀个话题,那什么是递归呢?接下来正⽂开始。 2. 递归定义 递归其实是一种解决问题方法,C语言中,递归就是函数自己调用自己。...4.2 顺序打印一个整数每一位 ⼊一个整数n,打印这个按照顺序打印整数每⼀位 ⼊:1234 输出:1 2 3 4 ⼊:521 输出:5 2 1 4.2.1 分析和代码实现 这个题目,放在我们面前...1; else return n*Fact(n-1); } Fact函数是可以产生正确结果,但是递归函数调用过程中涉及一些运行时开销。...C语言中每一次函数调用,都要需要为本次函数调用在栈区申请⼀块内存空间来保存函数调用期间各种局部变量,这块空间被称为运行时堆栈,或者函数栈帧。...当n大于2时就要实现前面两个数字,就要相加,然后将a和b都向后挪,也就是将b给a,c给b,然后再执行a+b,每执行一次n都要减减一下。

    73910

    c语言单片机delay延时函数详解

    大家好,又见面了,我是你们朋友全栈君。 c语言及单片机delay延时函数 环境 延时函数 一、是什么 二、为什么 三、用在哪里?...四、怎么做 1、循环延时 2、定时器延时 环境 开发环境:NY-IDE 单片机 :NY8B062D 延时函数 延时函数,作为一种常用函数,不同领域有不同用处。...而在嵌入式以及C语言编写中,我们常常遇到需要自己来编写延时函数情况,这种情况之下,了解其原理就显得必要。 一、是什么 简单来说,延时函数目的就在于等,实际上就是要等一段时间再来执行接下来代码。...例如: 名称 描述 循环 采用for或者while循环,让计算机跑无用代码,从而达到延时目的 定时器 通过定时器计时功能,来达到延时目的 系统调用 该功能其实还是通过以上两种方式来实现,当时这种功能出现在有系统程序里面...,执行系统延时情况下,单片机可以去执行别的函数,直到系统时间到,从而回来接着执行该代码,这实际上也提高了效率 二、为什么 为什么要延时?

    10.4K12

    C语言】分支语句详解

    if语句练习 ⼊⼀个⼈年龄 如果年龄<18岁,打印"少年" 如果年龄18岁⾄44岁打印"⻘年" 如果年龄45岁⾄59岁打印"中⽼年" 如果年龄60岁⾄89岁打印"⽼年" 如果90岁及以上打印...要注意一点是:C语言中0是假,非0为真,这里只是用1表示真,并不表示真就是1 注意事项: (1)不要把相等操作符==写成了赋值操作符=,容易出现逻辑错误,比如if( n = 3),原本想判断n...<=30,在后面的逻辑操作符会详细讲到 三、条件操作符 条件操作符属于三目操作符,也是C语言唯一一个三目操作符,需要用三个操作数,大致用法是: 条件 ?...从该例子可以看出,一些简单条件判断就可以使用条件操作符,会比if语句简单一些 条件操作符练习 使⽤条件表达式实现找两个数中较⼤ 答案本文最后 四、逻辑操作符 逻辑运算符提供逻辑判断功能,⽤于构建更复杂表达式...⼊1~5,输出是“⼯作⽇” ⼊6~7,输出“休息⽇” 如果输入其他数字,那么打印输入错误 如何简便地将要求完成 答案本文末尾 六、答案 if语句练习答案: 条件操作符练习答案:

    6210

    C语言分支与循环基础知识详解

    前言 C语言是结构化程序设计语言,这里结构指的是顺序结构、选择结构、循环结构,C语言是能够实现这三种结构,其实我们如果仔细分析,我们日常所见事情都可以拆分为这三种结构或者这三种结构组合。...同时,由于c语言中0表示假,非0表示真,所以这个表达式也可以是一个整形。...你可以根据下面这个题目,分别利用基本语句和多分支结构尝试解决,感受多分支结构处理问题上简洁性: ⼊⼀个⼈年龄 如果年龄<18岁,打印"少年" 如果年龄18岁⾄44岁打印"⻘年" 如果年龄45...当然,这一规则前提是没有大括号。 c语言中,语句缩进与对齐不会像python中那样影响语句进行。 如果你希望上面的代码可以打印出haha,你可以尝试加一个大括号。 2....C语言中,0表示假,所有非零表示真。比如,20>12返回1,12>20 返回0。关系表达式常用于 if 或 while 结构。

    8410

    C语言基础

    下面有一个简单C语言程序:屏幕上输出This is a C porgram....如: \x40 表⽰字符@ 接下来我们用实例来进行验证一些转义字符 可以看出前面的转义字符都输出了相应字符 当打印\120时先进行进制转换:120(八进制)——>80(十进制),再以80为ASCII...输出对应字符‘P',同理,打印\x40时,40(十六进制)——>64(十进制),输出字符’@‘ 6.常量和变量 计算机语言中有常量和变量这两种数据表现形式。...该占位符本⾝不输出,只将存储指定变量之中。 • %o :⼋进制整数。 • %p :指针(⽤来打印地址)。 • %s :字符串。...关系表达式是一个逻辑,即“真”或者“假”,C语言逻辑计算结果中,输出时以1表示真,以0表示假。

    1000

    c语言】知识记录——分支和循环(含随机数知识点)

    二 .循环语句 (1)while语句 基本语法: while(表达式) { }; 练习题:⼊⼀个正整数,逆序打印这个整数每⼀位  例如: ⼊:1234,输出:4 3 2 1            ...printf("这句话就不会被打印出来\n"); here: printf("直接跳过上面的那个,打印现在这句话\n"); return 0; } 注意:      goto 语句如果使⽤不当...,要三个语法结构,好麻烦~ 呐,我们慢慢推一遍为什么———— 首先,我们直接运行rand结果 这个看似随机多运行几次,会发现结果都一样   ——有点问题啊小兄弟 如果再深⼊了解...斯,真讨厌 该死 于是c语言又提供了⼀个函数叫 srand,用来初始化随机数生成器 srand原型如下: void srand (unsigned int time); //哇哦这里提前出现了time...注意:srand函数是不需要频繁调用,一次运行程序中调用一次就够了。 随机数实战运用 见我作品“【c语言一些刷题遇到小知识点—1 ”

    10610

    C语言:基础知识

    类似的操作系统还有:windows、linux、macos(苹果)…… 1.3“C生万物,编程之本” C语言四大领域: 游戏:目前很多游戏客户端都是基于C++开发,除了一些网页游戏可能不是,所以如果想从事游戏开发行业学好...虚拟现实仿真:这个也是发展很快计算机领域,目前各种数字地球,数字城市,虚拟地理环境什么,出现了这方面的大量应用 C语言出现时间较早,其他语言基本都是C语言之后出现,或者C语言基础上进行创造...2.5 VS上创建新项目 2.5.1 写代码步骤 1、创建项目(代码是项目中管理) 2、创建.c文件 3、写C语言代码,邀严格按照C语言语法来写!! ​ ​...• 换⾏ \n ASCII是:10 • 在这些字符中ASCII码从0~31 这32个字符是不可打印字符,无法打印屏幕上观察 • 字符其实也属于整型家族 比如:可打印字符展示(32-127) #...⼀些随机,这就是 因为 arr1 末尾地⽅没有 \0 字符作为结束标志,在打印时候没有停⽌。

    18310

    轻松拿捏C语言——分支语句

    讲解if语句之前,我们先来了解一下逻辑表达式:if语句可以测试条件。 1.逻辑表达式 在这些语句中,许多是要判断条件真假来选择执行哪一条语句,因此我们需要知道C语言中0为假,非0为真。...C 语言中, 0 表示假,所有非零表⽰真。比如, 20 > 12 返回 1 , 12 > 20 返回 0 。 关系表达式常⽤于 if 或 while 结构。...("C语言成绩优异,继续保持。")...; return 0; } C语言中,0为假,非0表示真,也就是表达式结果如果是0,则语句不执行,表达式结果如果不是0,则语句执行。...2.6条件表达式 C语言提供了一种特殊运算符,其允许表达式根据条件来产生两个一个。条件操作符也叫三目操作符,需要接受三个操作数,形式如下: exp1 ?

    8510
    领券