当前位置: 首页 > news >正文

重新开始 杂类:C++基础

目录

1.输入输出

2 . i++ 与 ++i 

3.结构体

4.二进制


1.输入输出

#include<cstdio>//cin>>,cout
#include<iostream>//printf,scanf

(1) cin , cout输入输出流可直接用于数字,字符

(2)scanf("%数据类型",&变量名称 );

printf("%数据类型", 变量名称 );

整型
printf("%6d",a );
输出的数占6位
浮点型 
printf("%.6f", a );
输出小数点后6位


2 . i++ 与 ++i 

i++ 即后加加,原理是:先自增,然后返回自增之前的值
++i 即前加加,原理是:先自增,然后返回自增之后的值

详解


3.结构体

(1)结构体定义

//定义一
struct node {int num[100001] , length ;node() {//结构体初始化memset( num , 0 , sizeof(num) );length = 0 ;}
}
struct node a , b ;//定义二
struct node {int num[100001] , length ;node() {//结构体初始化memset( num , 0 , sizeof(num) );length = 0 ;}
} a , b ;

(2)对结构体的运算符重载

例子为高精度加法

在结构体内部重载

struct node {int num[10001] , length;node() {//结构体初始化 memset( num , 0 , sizeof(num) );length = 0 ;}// 在结构体内部重载运算符 node operator + ( const node &y ) {//重载运算符 node z ;int len = max( length , y.length ) ;int Add = 0 ;for( int i = 1 ; i <= len ; ++ i ) {z.num[i] = num[i]+y.num[i]+Add ;Add = z.num[i]/10 ;z.num[i] %= 10 ;}len ++ ;z.num[len] = Add ;while( !z.num[len] && len> 1 ) {//0+0 = 0 ,需要保留一位0 len -- ;}z.length = len ;return z ;}};

在结构体外部重载

struct node {int num[10001] , length;node() {//结构体初始化 memset( num , 0 , sizeof(num) );length = 0 ;}node operator +( const node &y );在结构体外部重载运算符 };//在结构体外部重载运算符 
node node::operator +( const node &y ) {//node::operator 该重载运算符仅在node类中能使用 node z ;int len = max( length , y.length ) ;int Add = 0 ;for( int i = 1 ; i <= len ; ++ i ) {z.num[i] = num[i]+y.num[i]+Add ;Add = z.num[i]/10 ;z.num[i] %= 10 ;}len ++ ;z.num[len] = Add ;while( !z.num[len] && len> 1 ) {//0+0 = 0 ,需要保留一位0 len -- ;}z.length = len ;return z ;
} 

基础概念

(1)::

::是一个作用域解析运算符,用于指定某个名字的声明或定义在哪个作用域内。在这个例子中,node::operator+表示operator+是一个在node类内部定义的成员函数。

因此,代码中的两个node分别表示不同的作用域。第一个node表示函数返回的值的类型是node类型,而第二个node则表示函数返回的是一个在node类内部定义的成员函数。

(2)public,private,protected


4.二进制

推荐博客      (1)       (2)

1.按位与 (&)
0 & 0 = 0、0 & 1 = 0、1 & 0 = 0、1 & 1 = 1
两者全部为true则结果为true,否则为false;

2.按位或(|)
0 | 0 = 0、0 | 1 = 1、1 | 0 = 1、1 | 1 = 1
两者有一个为true则结果为true,否则为false;

3.异或(^)
0 ^ 0 = 0、0 ^ 1 = 1、1 ^ 0 = 1、1 ^ 1 = 0
两者相同为false,不同为true;
可以使用交换律;
0和任何数^,结果为其本身;
任何数和自身^,结果为0。
4. 位移

http://www.lryc.cn/news/154160.html

相关文章:

  • 自用的markdown与latex特殊符号
  • 【20期】说一说Java引用类型原理
  • 无锡布里渊——厘米级分布式光纤-锅炉安全监测解决方案
  • GREASELM: GRAPH REASONING ENHANCED LANGUAGE MODELS FOR QUESTION ANSWERING
  • QT C++ 实现网络聊天室
  • 每日一道面试题之什么是上下文切换?
  • 2023.9.3 关于 AVL 树
  • 机器学习课后习题 --- 机器学习实践
  • git常用操作
  • QT的补充知识
  • 【力扣周赛】第 360 场周赛(贪心 ⭐树上倍增)
  • 企业如何防止数据外泄——【部署智能透明加密防泄密系统】
  • 【聚类】DBCAN聚类
  • 通过安装cpolar内网穿透在Kali上实现SSH远程连接的步骤指南
  • UDP和TCP协议报文格式详解
  • STM32+UART串口+DMA收发
  • 安全基础 --- js的闭包和this属性
  • 【C语言每日一题】08. 字符三角形
  • 如何打war包,并用war包更新服务器版本
  • uniApp webview 中调用底座蓝牙打印功能异常
  • Mac下安装Jmeter及其配置
  • js+html实现打字游戏v1
  • Java on VS Code 8月更新|反编译器用户体验优化、新 Maven 项目工作流、代码高亮稳定性提升
  • 划分Vlan时需要注意的问题
  • 【广州华锐互动】利用AR远程指导系统进行机械故障排查,实现远程虚拟信息互动
  • Spring工具类--CollectionUtils的使用
  • Node.js 应用的御用品: Node.js 错误处理系统
  • K210-CanMV IDE开发软件
  • 0301yarnmapredude入门-hadoop-大数据学习
  • 大数据课程K15——Spark的TF-IDF计算Term权重