当前位置: 首页 > news >正文

C语言运算符和常用输入输出函数

5.运算符

(1)算数运算符

+ - * / %(求余)

双目运算符:2个操作数

1)%的操作数必须是整形数据或者和整形数据兼容的数据类型;

2)%左操作数是正数,结果是正数,左操作数是负数,结果是负数。

++ --

单目运算符:1个操作数

1)++num(前置++):先加后用;

2)num++(后置++):先用后加。

3)--num(前置--):先减后用;

4)num--(后置--):先用后减。

(2)赋值运算符

= += -= *= /= %=

左值:放在赋值运算符左边的量,左值只能是变量。

右值:放在赋值运算符右边的量,右值可以是常量、变量、表达式。

普通用法:赋值运算符左右两边的数据类型要一致。

当赋值运算符左右两边的数据类型不一时:

1)当浮点型数据赋值给整形数据,只保留整数部分,精度损失;

2)若赋值运算符左右两边是空间一致的数据类型,直接拷贝内存;

3)补符号位:小数据放入大空间,高位补符号位(正数补0,负数补1);

4)高位截断:大数据放入小空间,保留低位,高位截断。

num += 10 <=> num = num + 10;

cnt += 10 + 5 <=> cnt += (10 + 5);

除了逗号运算符,赋值运算符比其他运算符优先级都低。

(3)三目运算符

三个操作数

语法:表达式 ?表达式1 :表达式2

如果表达式的结果为真(成立),则三目运算符的最终结果为表达式1的结果。

如果表达式的结果为假(不成立),则三目运算符的最终结果为表达式2的结果。

(4)逗号运算符和sizeof运算符

num = 2+3, 4*5, 6-4; //5

num = (2+3, 4*5, 6-4); //2

注意:

1)逗号运算符优先级最低;

2)由逗号运算符组成的多个表达式的结果是最后一个式子的结果;

sizeof(数据类型/变量/常量/表达式)

功能:获取数据类型/常量/变量/表达式的结果在计算机内存中占的字节数。

返回结果:unsigned long --> %ld

(5)运算符的优先级和结合方向

优先级:

1):括号>单目运算符>双目运算符>三目运算符>赋值运算符>逗号运算符;

2):算数运算符>关系运算符>逻辑运算符。

结合方向:优先级相等时,看结合方向

单目运算符,三目运算符,赋值运算符自右向左运算。

二、常用输入输出函数

函数:封装的一个功能模块

输入输出:标准C库提供的输入输出函数。

1.putchar/getchar

int putchar(int c);

功能:向终端输出一个字符。

参数:要输出的字符的ASCII值。

返回值:返回输出字符的ASCII值。

int getchar(void);

功能:从终端读取一个字符。

参数:空。

返回值:返回终端读到的字符的ASCII值。

2.printf/scanf

printf:

功能:向终端输出格式化后的字符串。

(1)输出非格式控制符的数据

(2)输出带有格式控制符的数据

%d 以十进制有符号整形数据输出

%u 以十进制无符号整形数据输出

%ld 以十进制有符号长整形数据输出

%lu 以十进制无符号长整形数据输出

%o %O 以八进制整形数据输出(%#o %#O: 0144)

%x %X 以十六进制整形数据输出(%#x %#X: 0x64)

%f 以单精度浮点型数据输出

%lf 以双精度浮点型数据输出

%c 以字符型数据输出

%s 以字符串形式输出

%e %E 以科学计数法的形式输出(3.14e2)

(3)输出带有多个格式控制符的数据

(4)域宽输出设置

%nd 以n位域宽输出

%-nd 以n位域宽输出并左对齐

%0nd 以n位域宽输出,用0补齐

%.nf 以保留n位小数输出

%m.nf 以保留n位小数,m位域宽输出

scanf:

功能:从终端读取一个字符串并将其转换成目标格式。

注意:

1)scanf在使用时,“”里面是什么内容,终端必须输入同样内容;

2)sacnf的“”中除了格式控制符,尽量少写其他数据;

3)%s 以字符串形式输入时,要用字符数组接收,遇到空格会停止读取。

(1)scanf读取控制符数据

(2)scanf读取多个控制符数据

1)输入数字型数据时,中间用空格,回车或Tab隔开;

2)输入字符型数据时,会读取空格,回车和Tab;

3)用其它类型的数据隔开时,会停止读取。

4)在%c前面输入空格可以吸收输入的空格,回车和Tab。

3.puts/gets

puts:

功能:将字符串输出到终端,自动增加‘\n’(自动换行)。

gets:

功能:从终端读取字符串,并存入字符型数组中。

注意:gets是一个危险的函数,可能会造成数组越界。

http://www.jsqmd.com/news/1265769/

相关文章:

  • 3天从零到精通:国光OpenCore黑苹果完整实战指南
  • Cortex-M3内核调试与中断控制:PRIMASK、BASEPRI与DWT单元实战指南
  • 程序员必学:大模型训练核心技术解析与实践
  • PPT复刻操作系统界面:交互逻辑实现与性能优化指南
  • AI Agent与联邦学习融合架构设计与实现
  • 2026 年新消息:太谷正规的复合隔墙板销售厂家推荐,拆墙前必看:它如何颠覆你的装修预算? - 领域鉴赏官
  • 手机号码定位查询系统:3分钟快速定位手机归属地完整指南
  • 高质量非虚构书籍与AI生成内容的技术质量对比分析
  • LLM网关TTFT性能对比:自建网关vs OpenRouter在Claude-haiku上的实测分析
  • 2026 年更新:海盐正规的集装箱移动房出租厂家联系电话,工地临建也能避坑?这玩意儿竟比传统板房省一半成本还能随拆随走? - 品质体验官
  • AI生成内容检测原理与实战指南
  • 6个Prompt设计方法提升AI编程效率
  • 视频世界模型技术突破:时空连续体建模与工程实践
  • 统信UOS离线安装FFmpeg全攻略与依赖处理
  • TVA-World架构在工业质检领域的革命性突破(20)
  • Windows Copilot反代技术:免费调用GPT-5的OpenAI兼容API方案
  • 【claude code实践】用 MCP 接入数据库:让 Claude Code 辅助数据分析
  • 基于LangChain+Llama3的轻量级RAG系统实现指南
  • 从AI运维助手到数据安全:解析AI代理操作权限下的新型风险与防御体系
  • AI论文写作系统:从选题到答辩的全流程优化方案
  • 涂胶显影机(Track)初级工程师面试打分卡
  • 《冰雪传奇点卡版》正版下载官网指南,全网最新官方下载客户端渠道
  • 汽车控制器OTA常见问题分析总结
  • AI构建人生记录器:数据可视化与记忆量化实践
  • 5步解决黑苹果显示难题:从模糊到完美的专业级视觉体验
  • 克鲁斯卡尔重构树(Kruskal Reconstruction Tree)详解
  • 编程入门赛解题框架与双语言实现:从读题到AC的完整思考路径
  • 本地AI音乐生成器HeartMuLa:开源解决方案深度解析
  • AI模型微调:从通用到专业的核心技术解析
  • 基于YOLO的无人机检测系统:高精度低延迟解决方案