C语言基础语法第十篇
2021/12/28 23:41:50
本文主要是介绍C语言基础语法第十篇,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.基本数据类型的强转
2.指针的强转
指针内存储相同的地址,但会根据指针的类型采取相应的解析方式
3.const 修饰变量
const int a=10;
c++在编译时,a保持常性,会将a全部替换为10
c在编译时,a保持变量的属性,不进行替换
4.位操作
&(与) , ^(异或) , |(或) , ~(取反) , <<(左移) , >>(右移)
这些操作只针对 整型(char , short , int ...)
注:%(取模运算符)也只针对整型数
5. &
与 1相& == 0 则为偶数,否则为奇数 (奇数的二进制位最后一位肯定为1)
任何整数与0相&肯定为0
位&可以把某一位 置为0
6. |
位 | 可以把某一位 置为1
7.^
1). 归零率(任何整型数和自身异或时都为0)
2). 恒等率 (任何整数和0异或都为其本身)
3). 交换律
4). 结合律
5). 自反率 cha^chb^cha == chb
8.不使用中间变量交换两个变量
#include <stdio.h> #include <stdlib.h> int main() { char cha = 12; char chb = 23; cha = cha^chb; chb = cha^chb; //=>cha cha = cha^chb; printf("%d\n", cha); printf("%d\n", chb); system("pause"); return 0; }
分析:
9.找出数组只出现一次的元素
#include <stdio.h> #include <stdlib.h> int main() { int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8 }; int count = sizeof(arr) / sizeof(arr[0]); int tmp = 0; for (int i = 0; i < count; i++) { tmp = arr[i] ^ tmp; } printf("%d\n", tmp); system("pause"); return 0; }
10. 左移<<
<<左移一位,后面添一个0
11. 右移>>
有符号数 >> 右移一位,前面添一个符号位
无符号数 >> 右移一位,前面添一个0
12.左移和右移的应用
将某一位置为0时,可将1左移到此位置,然后取反~,在与该整数相&
#include <stdio.h> #include <stdlib.h> int main() { char ch = 0xaa; // ch => 1010 1010 // 0 // 0000 1000 1左移三次 // 1111 0111 对其取反 // 1010 0010 再与ch相与 ch = ~(1 << 3)&ch; return 0; }
13.计算一个整数的二进制位中有多少个1
#include <stdlib.h> int Get_Bit1(unsigned int x) { int sum = 0; while (x!=0) { if (x & 1 ) { sum++; } x = x >> 1; } return sum; } int main() { int x = 0; int sum = 0; scanf("%d", &x); sum = Get_Bit1(x); printf("sum=%d\n", sum); system("pause"); return 0; }
这篇关于C语言基础语法第十篇的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享