入门c++语法(如果上机前你也害怕忘了这些小点…)

张开发
2026/5/31 0:36:16 15 分钟阅读
入门c++语法(如果上机前你也害怕忘了这些小点…)
1. 算术运算符用于数值计算运算符名称示例说明加a b加法-减a - b减法*乘a * b乘法/除a / b除法整数除法会截断%取模a % b求余数只能用于整数// 题目输入秒数转换为分钟和剩余秒数 int total 367; int minutes total / 60; // 6 分钟 int seconds total % 60; // 7 秒2. 关系运算符比较运算符运算符名称示例说明等于a b判断是否相等!不等于a ! b判断是否不等大于a b判断是否大于小于a b判断是否小于大于等于a b判断是否大于或等于小于等于a b判断是否小于或等于注意关系运算符的结果是布尔值true/false。3. 逻辑运算符运算符名称示例说明逻辑与a b两边都为真时结果为真||逻辑或a || b至少一边为真时结果为真!逻辑非!a取反真变假假变真// 题目判断闰年 if ((year % 4 0 year % 100 ! 0) || (year % 400 0)) cout 闰年; // 题目判断一个字符是否为大写字母 if (ch A ch Z) cout 大写;4. 赋值运算符运算符示例等价于a b将 b 的值赋给 aa ba a b-a - ba a - b*a * ba a * b/a / ba a / b%a % ba a % b等于号都在后面~5. 自增自减运算符运算符名称示例说明前置自增aa 先加 1再使用新值后置自增a先使用 a 的原值再加 1--前置自减--aa 先减 1再使用新值--后置自减a--先使用 a 的原值再减 1int i0; while (i 3) // 先比较后加循环3次i最终为36. 位运算符操作整数二进制位运算符名称示例说明按位与a b对应位都为 1 时结果为 1|按位或a | b对应位至少一个为 1 时结果为 1^按位异或a ^ b对应位不同时结果为 1~按位取反~a每位取反左移a na 的二进制位左移 n 位右侧补 0右移a na 的二进制位右移 n 位符号位处理看编译器7. 条件运算符三目运算符条件 ? 表达式1 : 表达式2如果条件为真结果为表达式1的值否则为表达式2的值。示例max (a b) ? a : b;// 题目求两个数的最大值 int max (a b) ? a : b; //求三个数 int max_val (a b) ? ((a c) ? a : c) : ((b c) ? b : c);8. 逗号运算符表达式1, 表达式2, ..., 表达式N从左到右依次执行每个表达式结果为最后一个表达式的值。常用于for循环中for (int i0, j10; ij; i, --j) ...9. 其他常用运算符运算符名称示例说明sizeof获取字节大小sizeof(int)返回类型或变量占用的字节数取地址var获取变量的内存地址*解引用*ptr访问指针指向的变量-箭头ptr-member通过指针访问结构/类的成员.点obj.member通过对象访问成员::作用域解析std::cout指定命名空间或类的成员new动态分配new int在堆上分配内存delete释放内存delete ptr释放堆内存[]下标arr[i]访问数组元素()函数调用func()调用函数,逗号见上顺序求值// 题目求数组元素个数 int arr[10]; int len sizeof(arr) / sizeof(arr[0]); // 10 // 题目交换两个整数的值用指针 void swap(int *a, int *b) { int t *a; *a *b; *b t; } // 题目反转字符串 string s abc; for (int i0; is.length()/2; i) swap(s[i], s[s.length()-1-i]); //倒转数组 for (int i0, jn-1; ij; i, --j) { swap(arr[i], arr[j]); } /*举例arr [1, 2, 3, 4]n 4。 初始 i0, j3 → 交换 arr[0] 和 arr[3] → [4, 2, 3, 1] i1, j2 → 交换 arr[1] 和 arr[2] → [4, 3, 2, 1] i2, j1 → 条件 ij 不满足循环结束。 结果[4, 3, 2, 1]。*/ 关于swap函数swap是 C 标准库函数定义在algorithm头文件中很多竞赛环境会自动包含。它直接交换两个变量的值等价于int temp a; a b; b temp;使用swap让代码更简洁。

更多文章