C++基础01——字符型与运算符

字符型与运算符相关


前言

一、字符型

 作用:字符型变量用于显示单个字符
 语法: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;
}

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值