c++位运算和sizeof

本文深入探讨了位运算符的使用,包括按位与(&)、按位或(|)、按位异或(^)、左移(<<)和右移(>>)的操作,以及sizeof运算符用于获取不同类型变量的内存占用情况。通过具体示例,展示了如何利用这些运算符进行高效编程。

位运算符 & | ~

 &:都是1的时候为1

 |:至少有一个为1的时候为1

 ^:求反,有且只有一个1的时候为1

 

<<左移  >>右移

unsigned int num1(2);

unsigned int num2(num1 << 1);

cout <<num2<< endl;//4

unsigned int num3(num1 >> 1);

cout << num3 << endl;//1

 

 

sizeof:返回一条表达式或一个类型名字所占的字节数,类型为size_t

size_t sz(sizeof("asdwerwr"));

size_t sz1(sizeof(num1));

cout << sz << endl;

cout << sz1 << endl;

 

vector<int> vec(20,7);

size_t sz2(sizeof(vec));//vector和string只返回该类型的大小 与存放的值的多少无关

cout << sz2 << endl;

 

int arr[10]{ 0 };

size_t sz3(sizeof(arr));//为40。操作数组的会返回总共的大小

cout << sz3 << endl;

 

const double ch(3.1415);

const double *p = &ch;//不管什么类型的指针都为4

size_t sz4(sizeof(p));

cout << sz4 << endl;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值