首页 > 编程语言 >C/C++中的常用操作符与强制类型转换

C/C++中的常用操作符与强制类型转换

时间:2024-03-17 23:59:11浏览次数:23  
标签:类型转换 10 include return int C++ 操作符 printf main

引言:

在前两篇博客,我们详细介绍了C语言的基本数据类型和判断操作,相信大家对此已经有所掌握,在本篇博客,我们将继续介绍C语言中常用的几类操作符。

一.算数操作符

在写代码中,一定会涉及到计算问题,为此,C语言提供了一套操作符,分别是加法:+;减法:-;乘法:*;除法:/;取余数:%;我们依次结合代码讲解。

1.‘+’,‘-’运算符
#include <stdio.h>
int main()
{
    int a=10,b=100;
    printf("%d",a+b);//答案为110
    printf("%d",a-b);//答案为-90
    return 0;
}
2.‘*’运算符
#include <stdio.h>
int main()
{
    int a=10,b=100;
    printf("%d",a*b);//答案为1000
    return 0;
}
3.‘/’运算符
#include <stdio.h>
int main()
{
    int a=6,b=5;
    printf("%d",a/b);//答案为1
    return 0;
}



#include <stdio.h>
int main()
{
    double a=6,b=5;
    printf("%.1lf",a/b);//答案为1.2
    return 0;
}

我们重点观察一下‘/’运算,在数据类型都为int的情况下所得结果也是整形,所以只能保留1,而当我们更改初始数据类型后,我们就可以得到相应的小数,并且我们可以通过“.+数字”的形式来决定我们保留几位小数,如上述例子就是保留一位小数。

4.‘%’运算符
#include <stdio.h>
int main()
{
    int a=100,b=10;
    printf("%d",a%b);//答案为0
    return 0;
}



#include <stdio.h>
int main()
{
    int a=11,b=10;
    printf("%d",a%b);//答案为1
    return 0;
}

如上述代码,‘%’运算符又被称为模运算,其实就是一种取余数的运算,第一串代码余数为0,所以打印1,第二串代码余数为1,所以打印1。

二.赋值操作符

1.‘=’赋值法
#include <stdio.h>
int main()
{
    int a=10;
    int b=100;
    float c=0.3;
    return 0;
}



#include <stdio.h>
int main()
{
    int a=10,b=100;
    int c=b=a+3;
    printf("%d",c);//答案为13,连续赋值
    return 0;
}

如上述例子,创建好一个变量再给一个值,叫做赋值。第二串代码介绍了连续赋值的操作,从右往左执行下去,先执行a+3,赋值给b,b再赋值给c。

2.复合赋值法
#include <stdio.h>
int main()
{
    int a=10,b=100,c=6,d=6;
    a=a+3;
    b=b-3;
    c=c*3;
    d=d/3;
    printf("%d",a);//13
    printf("%d",b);//97
    printf("%d",c);//18
    printf("%d",d);//2
    return 0;
}





#include <stdio.h>
int main()
{
     int a=10,b=100,c=6,d=6;
    a+=3;
    b-=3;
    c*=3;
    d/=3;
    printf("%d",a);//13
    printf("%d",b);//97
    printf("%d",c);//18
    printf("%d",d);//2
    return 0;
}

以上两端带代码所求结果相同,也就是很多时候我们可以简写一些步骤,类似的操作还有“%=”,“^=”等等。我们后期再进行补充

三.单目操作符

1.前置++与后置++

在C语言中,我们有一个++的操作,代表操作数+1,等价于a=a+1;a+=1;但是这个++的作用取决于它的位置,我们以下列代码为例进行讲解:

#include <stdio.h>
int main()
{
    int a=10;
    int b=a++;
    printf("%d %d",a,b);//a的值为11,b的值为10
    return 0;
}






#include <stdio.h>
int main()
{
    int a=10;
    int b=++a;
    printf("%d %d",a,b);//a,b的值均为11
    return 0;
}

对比两段代码,我们会发现,仅仅是++的位置不同,就得到不同的结果,我们也可以发现,前置++先加1后操作,而后置++则是先操作,后加1.

2.前置--与后置--

其实--与++有着异曲同工的作用,仅仅只是操作变为了减法,记忆口诀也可以使用前置先减,后置后减。以下是代码示例:

#include <stdio.h>
int main()
{
    int a=10;
    int b=a--;
    printf("%d %d",a,b);//a的值为9,b的值为10
    return 0;
}






#include <stdio.h>
int main()
{
    int a=10;
    int b=--a;
    printf("%d %d",a,b);//a,b的值均为9
    return 0;
}
3.+和-的使用

在数学上,正数就是前面没有符号或者有个“+”的数(0除外),而负数总是有“-”在它的前方,在计算机中也如此,我们依旧可以省略“+”,但是我们不能省略“-”,下面是一些简单的代码示例:

#include <stdio.h>
int main()
{
    int a=10;
    int b=-10;
    int c=-b;
    printf("%d %d %d",a,b);//a的值为10,b的值为-10,c的值为10
    return 0;
}

四.强制类型转换

根据它的名字,我们大概可以才想到这个操作是将一种数据类型强制转换为另一种数据类型,比如将浮点数转换为整数或者将整数转换为浮点数。一般的语法形式为:(类型)

下面是代码示例:

#include <stdio.h>
int main()
{
    int a=10;
    float b=(double)a;
    double c=3.14;
    int d=(int)c;
    printf("%d %lf %lf %d",a,b,c,d);//a的值为10,b的值为10.0000000,c的值为3.14,d的值为3
    return 0;
}


注:转换类型需和括号里的类型一致

五.练习巩固

今天需要介绍的几类类型就完成了,那么我们接下来使用一个题目来巩固一下知识点

题目描述

学校和 yyy 的家之间的距离为 s 米,而 yyy 以 v 米每分钟的速度匀速走向学校。

在上学的路上,yyy 还要额外花费 1010 分钟的时间进行垃圾分类。

学校要求必须在上午 8:008:00 到达,请计算在不迟到的前提下,yyy 最晚能什么时候出门。

由于路途遥远,yyy 可能不得不提前一点出发,但是提前的时间不会超过一天。

输入格式

一行两个正整数 s,v,分别代表路程和速度。

输出格式

输出一个 2424 小时制下的时间,代表 yyy 最晚的出发时间。

输出格式为 HH:MMHH:MM,分别代表该时间的时和分。必须输出两位,不足前面补 00。

输入输出样例

输入 

100 99

输出 

07:48

说明/提示

对于 100%的数据,1≤s,v≤10^4。

题目来源:https://www.luogu.com.cn/problem/P5707


希望这篇博客对你有所帮助,也希望你能不吝啬地给我点个赞和关注,更多C/C++资料,题库,项目在我的QQ上2833252491可以添加我找我领取,谢谢你的阅读。

标签:类型转换,10,include,return,int,C++,操作符,printf,main
From: https://blog.csdn.net/2301_79539778/article/details/136739883

相关文章

  • 2.3C++对象模型和this指针
    1、成员变量和成员函数分开存储在C++中,类内的成员变量和成员函数分开存储只有非静态成员变量才属于类的对象上空对象占用内存空间为1。C++编译器会为每个空对象也分配1个字节的空间,是为了区分空对象占内存的位置。每个空对象也应该有一个独一无二的内存地址。calssPerson{......
  • 【VC++学习笔记】控件及按钮的设置和使用
    1:按钮的使能与禁止用ClassWizard的MemberVariables为按钮定义变量,如:m_Button1;则m_Button1.EnableWindow(true);使按钮处于允许状态m_Button1.EnableWindow(false);使按钮被禁止,并变灰显示2:控件的隐藏与显示用CWnd类的函数BOOLShowWindow(intnCmdShow)可以隐藏或显示......
  • C++ 并发编程指南(11)原子操作
    文章目录一、原子操作1、基本概念2、C++中的原子类型3、示例4、总结前言在C++多线程编程中,原子操作扮演着至关重要的角色。它们提供了一种在多线程环境中安全地访问和修改共享数据的方式,从而避免了数据竞争和不一致性的问题。本文将详细介绍C++中的原子操作,包括其......
  • C++算法学习心得八.动态规划算法(5)
    1.买卖股票的最佳时机(121题)题目描述:给定一个数组prices,它的第 i个元素 prices[i]表示一支给定股票第i天的价格。你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取......
  • C++算法学习心得八.动态规划算法(4)
    1.零钱兑换(322题)题目描述:给定不同面额的硬币coins和一个总金额amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。你可以认为每种硬币的数量是无限的。示例 1:输入:coins=[1,2,5],amount=11输出:3解......
  • C++STL第四篇(最简单的栈和队列)
    stack&queuestackstack是一种先进后出(FirstInLastOut,FILO)的数据结构,它只有一个出口,形式如图所示。stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法可以存取stack的其他元素。换言之,stack不允许有遍历行为。有元素推入栈的操作称为:push,将元......
  • qml使用c++的类
    QML使用C++的类qmlobjectdefine.h#ifndefQMLOBJECTDEFINE_H#defineQMLOBJECTDEFINE_H#include<qobjectdefs.h>#include<qqml.h>#defineQML_FUNCTIONQ_INVOKABLE#defineQML_MEMBER_NAME(NAME)......
  • C++20新特性-barrier
     以下内容由豆包大语言模型生成,内容仅供参考: C++20引入了一个新的标准库头文件 <barrier>,其中包含了对屏障(barrier)的支持。屏障是一种用于同步多个线程的同步原语,它允许线程在某个点上等待,直到所有线程都到达该点。C++20的 <barrier> 头文件提供了一个 std::barrier......
  • 【经验】关于c++11中string类型字符串和整形相互转化的用法
    https://blog.csdn.net/Elephant_King/article/details/129225134 c++11中为我们提供了许多非常方便的函数,可以帮助我们在整形与string类型字符串进行转换关于Dev-c++如何使用c++11,因为本人是mac系统,使用cLion,无法安装Dev,可以在网上搜其他教程实现整形转字符串(to_string())to_s......
  • 常见排序算法(C/C++)--- 动画演示
        本篇将介绍一些常见的排序算法,如插入排序:直接插入排序、希尔排序;选择排序:选择排序、堆排序;交换排序:快速排序、冒泡排序;以及最后的归并排序。    对于以上的排序算法,我们总结了每种排序算法的特性,接着对直接插入排序进行了优化;然后实现了归并排序和快速排......