Jadual Kandungan
第四章 表达式
基础概念
求值顺序
算术运算符
逻辑和关系运算符
逻辑与 &&、 逻辑或 ||
关系运算符
赋值运算符
赋值运算满足右结合律
条件运算符 ?:
位运算符
sizeof运算符
类型转换
隐式类型转换
显示转换
Rumah pembangunan bahagian belakang Tutorial C#.Net 第四章C++:表达式概念-运算符的应用

第四章C++:表达式概念-运算符的应用

Aug 06, 2018 am 10:40 AM
c++

介绍由语言本身定义、并用于内置类型运算对象的运算符,同时简单介绍几种标准库定义的运算符。

第四章 表达式

基础概念

  • 一元运算符:作用于一个运算对象的运算符

  • 二元运算符:作用于两个运算对象的运算符

  • 函数调用也是一种特殊的运算符,它对运算对象的数量没有限制

  • 左值:当对象被当做左值的时候,用的是对象的身份(在内存中的位置)。

  • 右值:当一个对象被当做右值的时候,用的是对象的值(内容)。

求值顺序

  • 在大多数情况下,不会明确指定求值顺序。只有四种运算符明确规定可运算对象的求值顺序:

    1. 逻辑与运算符(&&):先求左侧才求右侧,只有当左侧为真时才计算右侧的值2. 逻辑或运算符(||)3. 条件运算符(?:)4. 逗号运算符(,)
    Salin selepas log masuk

算术运算符

bool b = true;bool b2 = -b;   //b2是true。-1不等于0,所以b2的值为真
Salin selepas log masuk
  • C++11规定,商一律向0取整(即直接切除小数部分)。

  • 若m%n不等于0,则它的符号和m相同:

    (-m)/n 和 m/(-n) 都等于 -(m/n)
    m%(-n) 等于 m%n(-m)%n 等于 -(m%n)
    Salin selepas log masuk

逻辑和关系运算符

关系运算符作用于算术或指针类型,逻辑运算符作用于任意能转换成布尔值的类型。
- 它们的返回值都是布尔类型。

逻辑与 &&、 逻辑或 ||

  • 短路求值(short-circuit evaluation)

关系运算符

关系运算符的求值结果是布尔值,连在一起用会产生意想不到的结果:

if(i < j < k)   //若k大于1则为真
Salin selepas log masuk

应改为:

if(i < j && j < k)
Salin selepas log masuk

赋值运算符

  • 赋值运算符飞左侧运算对象必须是一个可修改的左值。

  • 如果赋值运算符的左右两个运算对象类型不同,则右侧运算对象将转换成左侧运算对象的类型。

赋值运算满足右结合律

int i, j;
i = j = 0;  //正确,都被赋值为0
Salin selepas log masuk

条件运算符 ?:

cond ? expr1 : expr2
Salin selepas log masuk

满足右结合律,运算对象一般按照从右向左的顺序组合。

位运算符

作用于整数类型的运算对象,以及一种名为bitset的标准库类型的运算对象。

~   :位求反
<<  :左移
>>  :右移
&   :位与
^   :位异或|   :位或
Salin selepas log masuk

sizeof运算符

返回所占字节数,所得值是一个size_t类型。

有如下两种形式:sizeof(type)sizeof expr
Salin selepas log masuk
  • 满足右结合律。

类型转换

隐式类型转换

大多数情况下数组转换成指针
- 当数组被用作decltype关键字参数,或者作为取址符(&)、sizeof及typeid等运算符的运算对象时,上述转换不会发生。

显示转换

  • 命名的强制类型转换

cast-name<type>(expression)
Salin selepas log masuk

cast-name有如下几种:

dynamic_cast        //运行时类型识别static_cast         //只要不包含底层const,均可进行强制类型转换,告诉编译器不在乎精度损失const_cast          //只能改变运算对象的底层const,称为去掉cast性质(cast away the const)。将常量对象转换为非常量对象。reinterpret_cast    //
Salin selepas log masuk

参考:C++Primer第五版

介绍由语言本身定义、并用于内置类型运算对象的运算符,同时简单介绍几种标准库定义的运算符。

相关文章:

第一章C++:函数返回值、GNU编译器命令

第二章C++:变量和基本类型

Atas ialah kandungan terperinci 第四章C++:表达式概念-运算符的应用. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++? Bagaimana untuk melaksanakan Corak Reka Bentuk Strategi dalam C++? Jun 06, 2024 pm 04:16 PM

Langkah-langkah untuk melaksanakan corak strategi dalam C++ adalah seperti berikut: tentukan antara muka strategi dan isytiharkan kaedah yang perlu dilaksanakan. Buat kelas strategi khusus, laksanakan antara muka masing-masing dan sediakan algoritma yang berbeza. Gunakan kelas konteks untuk memegang rujukan kepada kelas strategi konkrit dan melaksanakan operasi melaluinya.

Bagaimana untuk melaksanakan pengendalian pengecualian bersarang dalam C++? Bagaimana untuk melaksanakan pengendalian pengecualian bersarang dalam C++? Jun 05, 2024 pm 09:15 PM

Pengendalian pengecualian bersarang dilaksanakan dalam C++ melalui blok try-catch bersarang, membenarkan pengecualian baharu dibangkitkan dalam pengendali pengecualian. Langkah-langkah cuba-tangkap bersarang adalah seperti berikut: 1. Blok cuba-tangkap luar mengendalikan semua pengecualian, termasuk yang dilemparkan oleh pengendali pengecualian dalam. 2. Blok cuba-tangkap dalam mengendalikan jenis pengecualian tertentu, dan jika pengecualian luar skop berlaku, kawalan diberikan kepada pengendali pengecualian luaran.

Bagaimana untuk menggunakan warisan templat C++? Bagaimana untuk menggunakan warisan templat C++? Jun 06, 2024 am 10:33 AM

Warisan templat C++ membenarkan kelas terbitan templat menggunakan semula kod dan kefungsian templat kelas asas, yang sesuai untuk mencipta kelas dengan logik teras yang sama tetapi gelagat khusus yang berbeza. Sintaks warisan templat ialah: templateclassDerived:publicBase{}. Contoh: templateclassBase{};templateclassDerived:publicBase{};. Kes praktikal: Mencipta kelas terbitan Derived, mewarisi fungsi mengira Base kelas asas, dan menambah kaedah printCount untuk mencetak kiraan semasa.

Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Mengapa ralat berlaku semasa memasang pelanjutan menggunakan PECL dalam persekitaran Docker? Bagaimana menyelesaikannya? Apr 01, 2025 pm 03:06 PM

Punca dan penyelesaian untuk kesilapan Apabila menggunakan PECL untuk memasang sambungan dalam persekitaran Docker Apabila menggunakan persekitaran Docker, kami sering menemui beberapa sakit kepala ...

Apakah peranan char dalam c strings Apakah peranan char dalam c strings Apr 03, 2025 pm 03:15 PM

Dalam C, jenis char digunakan dalam rentetan: 1. Simpan satu watak; 2. Gunakan array untuk mewakili rentetan dan berakhir dengan terminator null; 3. Beroperasi melalui fungsi operasi rentetan; 4. Baca atau output rentetan dari papan kekunci.

Bagaimana untuk mengendalikan pengecualian C++ silang silang? Bagaimana untuk mengendalikan pengecualian C++ silang silang? Jun 06, 2024 am 10:44 AM

Dalam C++ berbilang benang, pengendalian pengecualian dilaksanakan melalui mekanisme std::promise dan std::future: gunakan objek promise untuk merekodkan pengecualian dalam utas yang membuang pengecualian. Gunakan objek masa hadapan untuk menyemak pengecualian dalam urutan yang menerima pengecualian. Kes praktikal menunjukkan cara menggunakan janji dan niaga hadapan untuk menangkap dan mengendalikan pengecualian dalam urutan yang berbeza.

Empat cara untuk melaksanakan multithreading dalam bahasa c Empat cara untuk melaksanakan multithreading dalam bahasa c Apr 03, 2025 pm 03:00 PM

Multithreading dalam bahasa dapat meningkatkan kecekapan program. Terdapat empat cara utama untuk melaksanakan multithreading dalam bahasa C: Buat proses bebas: Buat pelbagai proses berjalan secara bebas, setiap proses mempunyai ruang ingatan sendiri. Pseudo-Multithreading: Buat pelbagai aliran pelaksanaan dalam proses yang berkongsi ruang memori yang sama dan laksanakan secara bergantian. Perpustakaan multi-threaded: Gunakan perpustakaan berbilang threaded seperti PTHREADS untuk membuat dan mengurus benang, menyediakan fungsi operasi benang yang kaya. Coroutine: Pelaksanaan pelbagai threaded ringan yang membahagikan tugas menjadi subtask kecil dan melaksanakannya pada gilirannya.

Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Cara Mengira C-SubScript 3 Subscript 5 C-SubScript 3 Subscript 5 Algoritma Tutorial Apr 03, 2025 pm 10:33 PM

Pengiraan C35 pada dasarnya adalah matematik gabungan, yang mewakili bilangan kombinasi yang dipilih dari 3 dari 5 elemen. Formula pengiraan ialah C53 = 5! / (3! * 2!), Yang boleh dikira secara langsung oleh gelung untuk meningkatkan kecekapan dan mengelakkan limpahan. Di samping itu, memahami sifat kombinasi dan menguasai kaedah pengiraan yang cekap adalah penting untuk menyelesaikan banyak masalah dalam bidang statistik kebarangkalian, kriptografi, reka bentuk algoritma, dll.

See all articles