字符型与运算符相关
目录
目录
前言
一、字符型
作用:字符型变量用于显示单个字符
语法:char ch = 'a';
注意1:在显示字符型变量时,用单引号将字符括起来,不要用双引号
注意2:单引号内只能有一个字符,不可以是字符串
C和C++中字符型变量只占用1个字节。
字符型变量并不是把字符本身放到内存中存储,而是将对应的ASCII编码放入到存储单元
1.使用方法
#include <iostream>
using namespace std;
int main() {
char ch = 'a';
cout << ch << endl;
cout << sizeof(char) << endl;
//ch = "abcde"; //错误,不可以用双引号
//ch = 'abcde'; //错误,单引号内只能引用一个字符
cout << (int)ch << endl; //查看字符a对应的ASCII码
ch = 97; //可以直接用ASCII给字符型变量赋值
cout << ch << endl;
cout << "_______转义字符的使用_______\n" << endl;
cout << "\\" << endl;
cout << "\tHello" << endl;
cout << "\n" << endl;
cout << "_______字符串的使用_______\n" << endl;
cout << "字符串可以用于表示一串字符\n" << endl;
//char 变量名[] = "字符串值" !!!!!!注意这里是双引号 ""
char str1[] = "这是C风格一串字符串";
/*
* char是字符类型, String是字符串类型
* String内部用来存储的结果是一个char字符数组
*/
string str2 = "这是C++风格一串字符串";
cout << str1 << endl;
cout << str2 << endl;
//布尔类型 bool 布尔数据类型代表真或假的值
cout << "_______布尔类型 bool使用_______\n" << endl;
bool flag = true;
cout << flag << endl; // 1
flag = false;
cout << flag << endl; // 0
cout << "size of bool = " << sizeof(bool) << endl; //1
system("pause");
return 0;
}
2.注意事项
/*
* char是字符类型, String是字符串类型
* String内部用来存储的结果是一个char字符数组
*/
//ch = "abcde"; //错误,不可以用双引号
//ch = 'abcde'; //错误,单引号内只能引用一个字符
二、运算符
- a +=2就是a = a + 2
- a -= 2就是a = a - 2
- b = a++;先进行b=a=10的操作,再进行a++=11;
- b = ++a;先进行++a=11,再进行b=a=11的操作;
1.算数运算符使用方法
#include <iostream>
using namespace std;
int main() {
cout << "_________运算符的使用 int a=10________\n" << endl;
int a = 10;
a += 2; // ;
cout << "a +=2就是a = a + 2 " << a<<"\n" << endl;
cout << "运算符-= " << endl;
a = 10;
a -= 2; // a = a - 2
cout << "a -= 2就是a = a - 2 " << a <<"" << endl;//同理还有*= /= %=
cout << "_________前置/后置递增/递减运算符的使用 int a=10________\n" << endl;
cout << "_________先来看下后置递增a++ int a=10________\n" << endl;
a = 10;
a++;
cout << a << "" << endl;
cout << "_________先来看下前置递增++a int a=10________\n" << endl;
a = 10;
++a;
cout << a << endl;
//区别
//前置递增先对变量进行++,再计算表达式
//后置递增先计算表达式,在进行++操作
//
int b = 0;
a = 10;
b = a++;
cout << " b = a++,b=" << b << "\n" << endl;//先进行b=a=10的操作,再进行a++=11;
cout << " b = a++,a=" << a << "\n" << endl;
a = 10;
b = ++a;
cout << " b = ++a,b=" << b << "\n" << endl;//先进行++a=11,再进行b=a=11的操作;
cout << " b = ++a,a=" << a << "\n" << endl;
/*
注意:无论++a还是a++,都会改变变量a的值,要想使a不变,应再次进行赋值操作a=10;
*/
cout << "_________前置/后置递增/递减运算符的进阶操作 int a=10________\n" << endl;
int a2 = 10;
int b2 = ++a2 * 10;
cout << "前置递增,先计算++a2=11,再计算b2=11*10=110" << endl;
cout << "b2 = ++a2 * 10=" << b2 << endl;
system("pause");
return 0;
}
2.逻辑运算符
- && 逻辑与,两个条件都为true,则返回true
- || 逻辑或,两个条件有一个为true,返回true;
- ! 逻辑非,如果条件为true,则逻辑非将其转换成false;
3.位运算符
& 按位与
0&0=0; 0&1=0; 1&0=0; 1&1=1;
| 按位或
0|0=0; 0|1=1; 1|0=1; 1|1=1;
^ 按位异或
相同为0,不同为1
0^0=0; 0^1=1; 1^0=1; 1^1=0;
~ 取反
~1=-2; ~0=-1;
<< 左移运算符
将一个运算对象的各二进制位全部左移若干位
A = 60,二级制表示为 A = 0011 1100;A<<2,即为 1111 0000
>> 右移运算符
将一个数的各二进制位全部右移若干位
A = 60,二级制表示为 A = 0011 1100;A>>2,即为 0000 1111
3.三目运算符
语法:表达式1 ? 表达式2 :表达式3
解释:
如果表达式1的值为真,执行表达式2,并返回表达式2的结果;
如果表达式1的值为假,执行表达式3,并返回表达式3的结果。
#include<iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
int c = 0;
cout << "int a = 10\n" << endl;
cout << "int b = 20\n" << endl;
cout << "int c = 0\n" << endl;
c = a > b ? a : b;
//这里可以将表达式1(c = a > b)看成判断条件,表达式2(a)(c=a)和表达式3(b)(c=b)看成返回值
cout <<"c = a > b ? a : b" << "\tc = " << c << endl;
//C++中三目运算符返回的是变量,可以继续赋值
cout << "(a > b ? a : b) = 100\n" << endl;
(a > b ? a : b) = 100;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "这里需要注意,返回的是表达式b=20,然后进行赋值b=100\n " << endl;
cout << "c = " << c << endl;
system("pause");
return 0;
}