c++教程2操作符

这篇具有很好参考价值的文章主要介绍了c++教程2操作符。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

2操作符

  • 算数运算
  • 赋值
  • 比较
  • 逻辑运算
  • 条件检查
  • size
  • 优先级
  • 数据类型转换

2.1 算数运算

c++教程2操作符

arithmetic.cpp

#include <iostream>
using namespace std;

int main()
{
  int a = 8, b = 4;

  cout << "Addition result: " << (a + b) << endl;
  cout << "Subtraction result: " << (a - b) << endl;
  cout << "Multiplication result: " << (a * b) << endl;
  cout << "Division result: " << (a / b) << endl;
  cout << "Modulus result: " << (a % b) << endl;

  cout << "Postfix increment: " << a++ << endl;
  cout << "Postfix result: " << a << endl;
  cout << "Prefix increment: " << ++b << endl;
  cout << "Prefix result: " << b << endl;

  return 0;
}

执行

# ./arithmetic
Addition result: 12
Subtraction result: 4
Multiplication result: 32
Division result: 2
Modulus result: 0
Postfix increment: 8
Postfix result: 9
Prefix increment: 5
Prefix result: 5

2.2赋值

c++教程2操作符

assign.cpp

#include <iostream>
using namespace std;

int main()
{
  int a , b;

  cout << "Assign values:  ";
  cout << "a = " << (a = 8) << "   ";
  cout << "b = " << (b = 4);

  cout << endl << "Add & assign:  ";
  cout << "a += b (8 += 4 ) a = " << (a += b);

  cout << endl << "Subtract & assign: ";
  cout << "a -= b (12 -= 4 ) a = " << (a -= b);

  cout << endl << "Multiply & assign: ";
  cout << "a *= b (8 *= 4 ) a = " << (a *= b);

  cout << endl << "Divide & assign: ";
  cout << "a /= b (32 /= 4 ) a = " << (a /= b);

  cout << endl << "Modulus & assign: ";
  cout << "a %= b (8 %= 4 )  a = " << (a %= b);

  cout << endl;

  return 0;
}

执行

# ./assign
Assign values:  a = 8   b = 4
Add & assign:  a += b (8 += 4 ) a = 12
Subtract & assign: a -= b (12 -= 4 ) a = 8
Multiply & assign: a *= b (8 *= 4 ) a = 32
Divide & assign: a /= b (32 /= 4 ) a = 8
Modulus & assign: a %= b (8 %= 4 )  a = 0

2.3比较

c++教程2操作符

comparison.cpp

#include <iostream>
using namespace std;

int main()
{
  int nil = 0 , num = 0 , max = 1;
  char cap = 'A' , low = 'a';

  cout << "Equality comparisons: ";
  cout << "(0 == 0) " << (nil == num) << "(true)  ";
  cout << "(A == a) " << (cap == low) << "(false)";

  cout << endl << "Inequality comparison:  ";
  cout << "(0 != 1) " << (nil != max) << "(true)";

  cout << endl << "Greater comparison:  ";
  cout << "(0 > 1) " << (nil > max) << "(false)";

  cout << endl << "Lesser comparison:  ";
  cout << "(0 < 1) " << (nil < max) << "(true)";

  cout << endl << "Greater or equal comparison: ";
  cout << "(0 >= 0) " << (nil >= num) << "(true)";

  cout << endl << "Lesser or equal comparison: ";
  cout << "(1 <= 0) " << (max <= num) << "(false)";

  cout << endl;

  return 0;
}

执行

# ./comparison
Equality comparisons: (0 == 0) 1(true)  (A == a) 0(false)
Inequality comparison:  (0 != 1) 1(true)
Greater comparison:  (0 > 1) 0(false)
Lesser comparison:  (0 < 1) 1(true)
Greater or equal comparison: (0 >= 0) 1(true)
Lesser or equal comparison: (1 <= 0) 0(false)

2.4逻辑运算

c++教程2操作符

#include <iostream>
using namespace std ;

int main()
{
  int a = 1 , b = 0 ; 

  cout << "AND logic: " << endl ;
  cout << "(a && a) " << (a && a) << "(true)  " ;
  cout << "(a && b) " << (a && b) << "(false)  " ;
  cout << "(b && b) " << (b && b) << "(false)" << endl ;

  cout << endl << "OR  logic: " << endl ;
  cout << "(a || a) " << (a || a) << "(true)  " ;
  cout << "(a || b) " << (a || b) << "(true)  " ;
  cout << "(b || b) " << (b || b) << "(false)" << endl ;

  cout << endl << "NOT logic: " << endl ;
  cout << "a = " << a << "  !a= " << !a << "  " ;
  cout << "b = " << b << "  !b= " << !b << endl ;

  return 0 ;
}

执行

# ./logic
AND logic:
(a && a) 1(true)  (a && b) 0(false)  (b && b) 0(false)

OR  logic:
(a || a) 1(true)  (a || b) 1(true)  (b || b) 0(false)

NOT logic:
a = 1  !a= 0  b = 0  !b= 1

2.5条件表达式

C++程序员最喜欢的测试操作符可能是?:"三元"操作符。这个运算符首先评估一个表达式的真假条件,然后根据评估结果返回两个指定值中的一个。由于这个原因,它也被称为"条件"运算符。

( test-expression ) ? if-true-return-this: if-false-return-this;

ternary.cpp

#include <iostream>
using namespace std;

int main()
{
  int a, b, max;
  a = 1, b = 2;

  cout << "Variable a value is: ";
  cout << ( (a != 1) ? "not 1, " : "1, " );
  cout << ( (a % 2 != 0) ? "odd" : "even" );

  cout << endl << "Variable b value is: ";
  cout << ( (b != 1) ? "not 1, " : "1, " );
	cout << ( (b % 2 != 0) ? "odd" : "even" );

  max = (a > b) ? a : b;
  cout << endl << "Greater value is: " << max << endl; 

  return 0;
}

执行

# ./ternary
Variable a value is: 1, odd
Variable b value is: not 1, even
Greater value is: 2

参考资料

  • 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
  • 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
  • python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html
  • https://askubuntu.com/questions/1408873/ubuntu-22-04-chinese-simplified-pinyin-input-support

2.6 size

变量的声明会分配系统内存,分配给该变量的值将被存储在那里。为此分配的内存量由你的系统和数据类型决定。
通常情况下,int数据类型被创建为默认的"long"值,它可以存储从+2,147,483,647到-2,147,483,648的数值。另一方面,如果int数据类型默认被创建为"short"值,它只能存储从+32,767到-32,768的值。

在声明变量时,可以在int关键字前加上short或long限定符,明确指定首选范围。如果确定永远不会超出限定范围,short int关键字可以节省内存空间。

在声明int变量时,默认情况下它可以包含正整数或负整数,也就是所谓的"有符号"值。如果变量始终只包含正整数,可以将其限定为无符号变量,以增加其最大可能值。通常情况下,unsigned int的取值范围为0到65,535之间,unsigned long int的取值范围为0到 4,294,967,295 之间。

任何变量的内存大小都可以使用 C++ 的 sizeof 运算符来确定。要检查的变量名称可以在sizeof运算符名称后的可选括号中指定。

sizeof.cpp

#include <iostream>
using namespace std;

int main()
{
  int num; int nums[50];
  short int number; unsigned int max;
  double pi; float decimal;
  char letter; char letters[50];
  bool isTrue;

  cout << "int size: " << sizeof( num ) << endl;
  cout << "50 int size: " << sizeof( nums ) << endl;
  cout << "short int size: " << sizeof( number ) << endl;
  cout << "unsigned int size: " << sizeof( max ) << endl;

  cout << "double size: " << sizeof( pi ) << endl ;
  cout << "float size: " << sizeof( decimal ) << endl;
  cout << "char size: " << sizeof( letter ) << endl;
  cout << "50 char size: " << sizeof( letters )<< endl;
  cout << "bool size: " << sizeof( isTrue ) << endl;

	return 0;
}

执行

# ./sizeof
int size: 4
50 int size: 200
short int size: 2
unsigned int size: 4
double size: 8
float size: 4
char size: 1
50 char size: 50
bool size: 1

2.7优先级

下表按降序列出了运算符优先级--最上面一行的运算符优先级最高;下面一行的运算符优先级依次降低。C++对包含多个相同优先级运算符的表达式进行运算的顺序是由"运算符关联性"决定的--将运算符分组为左侧运算符(LTR)或右侧运算符(RTL)。

c++教程2操作符

#include <iostream>
using namespace std;

int main()
{
  // Multiply, add default precedence.
  int num = 1 + 4 * 3;
  cout << endl << "Default order:  " << num << endl;

  // Forced precedence.
  num = ( 1 + 4 ) * 3;
  cout << "Forced order:  " << num << endl << endl;

  // Left to right default direction.
  num = 7 - 4 + 2;
  cout<< "Default direction: " << num << endl;

  // Forced direction.
  num = 7 - ( 4 + 2 );
  cout << "Forced direction: " << num << endl;

  return 0;
}

执行

# ./precedence

Default order:  13
Forced order:  15

Default direction: 5
Forced direction: 1

2.8转换数据类型

.....
存储在变量中的任何数据都可以通过一个称为"casting"的过程强制(胁迫)到一个不同数据类型的变量中。

variable-name = ( data-type ) variable-name;

这是传统的转换形式,在C编程语言中也能找到。C++中的另一种新形式是使用带角括号的static_cast关键字,如下所示:

variable-name = static_cast < data-type > variable-name;

新版本避免了括号的使用,从而可以在源代码中更容易地识别转换,因为括号很容易与表达式中的括号混淆。较新形式的转换更受欢迎,但较旧形式的转换仍被广泛使用。

要准确存储算术运算的结果,通常需要进行转换,因为一个整数除以另一个整数总是会产生一个整数结果。例如,整数除以 7/2 的截断整数结果是3。

要存储精确的浮点运算结果,需要将结果转换成合适的数据类型,例如浮点数,如下所示:

float result = ( float ) 7 / 2 ;

或者使用较新的转存形式:

float result = static_cast < float > 7 / 2 ;

无论哪种情况,都应注意运算符先例在执行算术运算前会将第一个操作数转换为指定的数据类型,因此该语句最好写为

float result = static_cast < float > ( 7 ) / 2 ;

括号中的表达式 ( 7 / 2 ) 将首先对整数执行算术运算,因此整数结果将在投到 float 变量之前被截断,这不是我们想要的效果!

#include <iostream>
using namespace std;

int main()
{
  int num = 7 , factor = 2;
  char letter = 'A';
  float result = 0.0;

  // Plain division.
  cout << "Integer division: " << ( num / factor ) << endl;

  // Cast int to float.
  result = (float) (num) / factor;
   cout << "Cast division float: " << result << endl;

  // Cast char to int.
  num = static_cast <int> (letter);
  cout << "Cast character int: " << num << endl;

  // Cast int to char.
  letter = static_cast <char> (70);
  cout << "Cast integer char: " << letter << endl;

  return 0;
}

执行文章来源地址https://www.toymoban.com/news/detail-761381.html

# ./cast
Integer division: 3
Cast division float: 3.5
Cast character int: 65
Cast integer char: F

到了这里,关于c++教程2操作符的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ operator关键字的使用(重载运算符、仿函数、类型转换操作符)

    C++ operator的使用(重载运算符、仿函数、类型转换操作符) C++11实用技术(一)auto与decltype的使用 C++11实用技术(二)std::function和bind绑定器 C++11实用技术(三)std::future、std::promise、std::packaged_task、async C++11 中,operator 是一个,用于重载运算符。通过重载运算符

    2024年02月14日
    浏览(45)
  • c++教程2操作符

    算数运算 赋值 比较 逻辑运算 条件检查 size 优先级 数据类型转换 arithmetic.cpp 执行 assign.cpp 执行 comparison.cpp 执行 执行 C++程序员最喜欢的测试操作符可能是?:\\\"三元\\\"操作符。这个运算符首先评估一个表达式的真假条件,然后根据评估结果返回两个指定值中的一个。由于这个原

    2024年02月04日
    浏览(51)
  • 【 c 语言 】赋值操作符详解

    🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C语言 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 引言: 在C语言编程中,赋值操作符是我们日常编程中不可或缺的一部分。它不仅是初始化变量、修改

    2024年04月09日
    浏览(37)
  • 【PostgreSQL】函数与操作符-比较函数和操作符

    PostgreSQL中的比较函数和操作符用于比较两个表达式的值。它们的作用是确定表达式的值是否满足某种条件,例如等于、大于、小于等。 比较函数是一个接受两个参数的函数,返回一个布尔值,表示两个参数是否满足某种条件。例如,equal()函数用于判断两个参数是否相等,

    2024年01月17日
    浏览(50)
  • [C++] 类与对象(中)类中六个默认成员函数(2)-- 运算符重载 -- 取地址及const取地址操作符重载

      本篇我们以日期类来展开讲。对于一个日期,我们如何去比大小呢?对年月日依次进行比较可以,但是可以直接比较吗? 我们可以看到,对于自定义类型的日期类直接去比较两个日期的大小是错误的,因此我们需要对运算符赋予特殊的功能,去实现可以对自定义类型的比较

    2024年02月13日
    浏览(50)
  • 【C语言】表达式求值相关问题汇总—>隐式类型转换(整型提升)、算数转换与操作符优先级汇总(收藏查阅)

     👀 樊梓慕: 个人主页   🎥 个人专栏: 《C语言》《数据结构》《蓝桥杯试题》 🌝 每一个不曾起舞的日子,都是对生命的辜负。 目录 前言: 一、隐式类型转换 (一)整型提升的意义 (二)如何进行整型提升呢? 二、算数转换 三、操作符的属性 (一)操作符优先级汇

    2024年02月16日
    浏览(42)
  • 操作符(运算符)详解

    🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 🐰算数操作符:+    -    *    /    % 🐰移位操作符:    🌸进制的定义  🌸整数二进制表示形式 🌸 左移操作符 🌸右移操作符 🐰位操作符:   |   ^    🌸(按位与)|(按位或)

    2024年01月19日
    浏览(48)
  • VHDL的运算操作符

    在VHDL语言中共有4类操作符,可以分别进行 逻辑运算(logical)、关系运算(relational)、算术运算(Arithmetic)和并置运算(Concatenation) 。需要注意的是,被操作符所操作的对象是操作数,且操作数的类型应该和操作符所要求的类型相一致。另外,运算操作符是有优先级的,

    2024年02月06日
    浏览(36)
  • C语言操作符详解+运算符优先级表格

       目录  前言 一、操作符是什么? 二、操作符的分类 三、算术操作符 四、逻辑操作符 五、比较操作符 六、位操作符 七、赋值操作符 八、其他操作符  九、运算符优先级表格 总结 在编写程序时,最常用到的就是操作符,本文将详细的介绍我们在编写程序时需要用到的操

    2024年01月18日
    浏览(49)
  • 【C语言初阶】操作符之 位运算符详解(“ << ”,“ >> ”,“ & ”,“ | ”,“ ^ ”,“ ~ ”)

    目录 C语言中六种位运算符: 一、位移运算符 1、移位运算符简介 2、先要了解一点 3、 左移运算符 4、右移运算符 5、警告 二、 1、 按位与 2、| 按位或 3、^ 按位异或 4、~ 取反 4、例子  按位与 | 按位或 ^ 按位异或 ~取反 右移 左移 位运算符用来对二进制位进行操作,C语言中

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包