【C++/2023年10月1日】

【黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难】 https://www.bilibili.com/video/BV1et411b73Z/?p=47&share_source=copy_web&vd_source=1cc941c8f5681d0ce0140c7d0f5bf5d3

默认情况下输出一个小数,会显示6位有效数字
float4字节/double8字节/int4字节
char赋值用单引号
(int)ch字符型对应ASCII码(a97、A65)
\t水平制表符:加起来八个自动补空格(对齐的效果)
string str=“hello”; #include /char str[]=“hello”;
布尔bool类型1字节
数据的输入:cin>>变量
小数可以相除
取模运算不可都是小数
后置递增a++会先运算再加1

产生每次不一样的随机数:
#include ;
srand((unsigned int)time(NULL));
int num = rand() % 100 + 1;

直接输出数组名查看数组首地址cout<<(int)arr<<endl
看元素加上&
数组名是常量,不可以赋值

int end=sizeof(arr)/sizeof(arr[0])-1;//末尾元素下标

二维数组定义方式:
int arr[2][3]=
{
{1,2,3},
{4,5.6}
};
int arr[ ][3]={1,2,3,4,5,6};//可省略行数
sizeof(arr)//二维数组所占内存大小
sizeof(arr[0])//二维数组第一行所占内存大小

函数声明int max(int a, int b);
函数的分文件:在源文件里写上头文件#include “xx.h”
头文件里加上开头和函数声明

指针

*p解引用,找到指针指向的数据;(不是操作系统位数)32位4个字节空间,64位8个字节空间
空指针不可以进行访问,0~255系统占用

const修饰指针:
修饰指针-常量指针-指向可修改,指向的值不可改-const int *p=&a;
修饰常量-指针常量-指向不可修改,指向的值可改-int * const p=&a;
修饰指针和常量-都不可修改-const int * const p=&a;

指针和函数
值传递 地址传递-可改变实参的值

结构体

定义struct不可省略,创建可省略

结构体数组:struct student arr[3]=
{
{“张三”,18,100},
{“李四”,19,90}
};
可改值:arr[2].name=“王五”;

结构体指针:->:student *p=&s;p->name

结构体做函数参数:值传递(形参改变不影响实参)地址传递(改变)不想修改主函数中的数据,用值传递),反之用地址传递

结构体中的const:值传递拷贝数量太大,形参改为指针可减少内存空间,const防止误操作,void print(const student *s)

程序的内存模型

代码区:共享、只读
全局区:全局变量、静态变量、常量(“xxxxx”字符串常量)(操作系统释放)
栈区:编译器分配释放 形参、局部变量不要返回局部变量的地址
堆区:程序员控制 new:指针本质是局部变量,放在栈上,指针保存的数据放在堆区 释放:delete (new开辟数组:int *arr=new int[10];释放:delete[] arr;)

C++中的引用(本质指针常量)

引用:给变量起别名 int &b=a;//b和a同时控制一块内存
ps.引用必须要初始化,初始化后不可更改

引用做函数的返回值:不要返回局部变量的引用;若函数的返回值是引用,这个函数的调用可以作为左值

常量引用:const int &ref=10;//编译器自动修改为int temp=10;const int &ref=temp;
main函数和调用函数都改变,函数括号里形参加const调用函数里改不了值

函数高级

函数默认参数:int func(int a, int b=20,int c=30)优先用传的值
ps.b有初值,c必须有;函数声明和实现只有一个有默认参数

函数占位参数
void func(int a , int = 10)

函数重载(可让函数名相同,提高复用性)
函数参数类型、参数个数、参数顺序不同
函数的返回值不可做函数重载
引用作为重载的条件:func(a)//调用无const
func(10)//调用有const
函数重载碰到默认参数:避免

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/92208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络协议】IP

当连接多个异构的局域网形成强烈需求时&#xff0c;用户不满足于仅在一个局域网内进行通信&#xff0c;他们希望通过更高一层协议最终实现异构网络之间的连接。既然需要通过更高一层的协议将多个局域网进行互联&#xff0c;那么这个协议就必须为不同的局域网环境定义统一的寻址…

jmh的OperationsPerInvocation参数

背景 最近再看fllink的性能基准测试时&#xff0c;发现它使用了OperationsPerInvocation注解&#xff0c;本文就来记录下这个注解的含义 官方解释 从官方文档&#xff1a;http://javadox.com/org.openjdk.jmh/jmh-core/0.9/org/openjdk/jmh/annotations/OperationsPerInvoca…

opencv 常用的滤波器及应用技巧

常用滤波器&#xff1a; 标准滤波器&#xff08;邻域平均法&#xff09;&#xff1a;该滤波器是所有滤波器里最简单的一种&#xff0c;输出的像素值由输入的滤波核所覆盖的像素值均值决定&#xff08;每个邻域像素对其贡献的权重是相同的&#xff09;。高斯滤波&#xff1a;该…

七、2023.10.1.Linux(一).7

文章目录 1、 Linux中查看进程运行状态的指令、查看内存使用情况的指令、tar解压文件的参数。2、文件权限怎么修改&#xff1f;3、说说常用的Linux命令&#xff1f;4、说说如何以root权限运行某个程序&#xff1f;5、 说说软链接和硬链接的区别&#xff1f;6、说说静态库和动态…

nginx隐藏版本号和标识

1.隐藏版本号:nginx-服务器banner泄漏风险_banner信息泄露_javachen__的博客-CSDN博客 2.隐藏nginx标识 cd /usr/local/nginx-1.24.0/src/corevi nginx.h在第14行 cd /usr/local/nginx-1.24.0/src/httpvi ngx_http_special_response.c在第22,29,36行 cd /usr/local/nginx-1.2…

JavaScript解构赋值介绍

JavaScript解构赋值介绍 JavaScript解构赋值是一种简化变量赋值的语法&#xff0c;允许从数组或对象中提取数据并将其赋值给变量。【https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment】 1.数组解构赋值 let numbers…

【知识梳理】多级页表的原理分析【地址形成过程】【扩充思考】

多级页表的地址形成过程 首先每个进程中都至少有一个页表&#xff08;段页式可以有多个页表&#xff09;&#xff0c;都有一个页表基地址寄存器&#xff08;PTBR&#xff09;&#xff0c;以下针对三级页表进行分析。 level1&#xff1a;PTBR代表的是一级页表的基地址&#xf…

leetCode 376.摆动序列 贪心算法

如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个 摆动序列 &…

【C语言数据结构】队列-顺序存储(顺序队列)

队列-顺序存储 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>#define MaxSize 100 #define ElemType inttypedef struct{//定义队列数据元素ElemType data[MaxSize];//定义队头和队尾指针&#xff08;说是指针&#xff0c;其…

中位数C++题解

T3 中位数 题目描述&#xff1a; 在玩正整数。他手里有一个串&#xff0c;每次会实施三种操作中的一种。 把没有加入的最小的正整数&#xff0c;从左边加入串中。把没有加入的最小的正整数&#xff0c;从右边加入串中。询问此时串的最中间的数&#xff0c;也就是假设当前有 个…

labview 混合信号图 多曲线分组

如果你遇到了混合信号图 多曲线分组显示的问题&#xff0c;本文能给你帮助。 在文章的最好&#xff0c;列出了参考程序下载链接。 一个混合信号图中可包含多个绘图区域。 但一个绘图区域仅能显示数字曲线或者模拟曲线之一&#xff0c;无法兼有二者。 以下显示的分两组&#…

ARM汇编基础指令整合

汇编语言的组成 伪操作 不参与程序的执行&#xff0c;但是用于告诉编译器程序该怎么编译 如&#xff1a; .text .global .end .if .else .endif .data 汇编指令 汇编器将一条汇编指令编译成一条机器码&#xff0c;在内存里一条指令…

RSA算法

算法简介 RSA是一种非对称加密方式。发送者把明文通过公钥加密后发送出去&#xff0c;接受者把密文通过私钥解密得到明文。 算法过程 生成公钥和私钥 选取两个质数p和q&#xff0c;np*q。n的长度就是密钥长度。φ(n)(p-1)*(q-1)φ(n)为n的欧拉函数。找到1-φ(n)间与φ(n)互质的…

DTO的作用

DTO只是一个代码规范的设计&#xff0c;无需过度执着于DTO。在小型项目中&#xff0c;很多情况没有必要使用DTO返回数据&#xff0c;直接用map也完全可以。 减少多余的参数&#xff0c;出于安全性、节约流量的考虑。 例如&#xff1a;密码&#xff0c;出于安全性考虑不返回前端…

公众号商城小程序的作用是什么

公众号是微信平台重要的生态体系之一&#xff0c;它可以与其它体系连接实现多种效果&#xff0c;同时公众号内容创作者非常多&#xff0c;个人或企业商家等&#xff0c;会通过公众号分享信息或获得收益等&#xff0c;而当商家需要在微信做私域经营或想要转化粉丝、售卖产品时就…

BL808学习日志-1-三核通讯

接上个博客&#xff0c;今天实验了一下BL808的IPC通讯&#xff0c;使用的是博流自己的SDK&#xff1b;参考手册上并没有说明各个寄存器&#xff0c;是通过网友的结论和自己的部分修改达成的。 一、实验代码 1.目前仅测试了LP内核和M0内核之间的通讯&#xff0c;使用SIPEED的M…

SELinux 介绍

背景 在工作中经常需要在 android 中增加一些东西&#xff0c; 而android有自己的安全限制&#xff0c;如果不懂SELinux&#xff0c;就不好添加。 Control Access Model https://zh.wikipedia.org/wiki/Chmod https://linux.die.net/man/1/chcon DAC DAC and Trojan Horses D…

一维数组和二维数组的使用(一)

目录 导读1. 一维数组1.1 一维数组的创建1.2 数组的初始化1.3 一维数组的使用1.4 一维数组在内存中的存储 2. 二维数组2.1 二维数组的创建2.2 二维数组的初始化2.3 二维数组的使用2.4 二维数组在内存中的存储 博主有话说 导读 本篇主要讲解一维数组和二维数组的创建和使用&…

dart flutter json 转 model 常用库对比 json_serializable json_model JsonToDart

1.对比 我是一个初学者,一直跟着教材用原生的json,最近发现实在太麻烦了.所以搜索了一下,发现真的有很多现成的解决方案. 网页 https://app.quicktype.io/?ldart 这个是测试下来最好用的 有很多选项,可以使用 json_serializable 也可以不使用 json_serializable 这是推荐最…

机器人入门(一)

机器人入门&#xff08;一&#xff09; 一、ROS是什么&#xff0c;能用来干什么&#xff1f;二、哪些机器人用到了ROS&#xff1f;三、ROS和操作系统是绑定的吗&#xff1f;四、ROS 1 和ROS 2的关系是什么&#xff1f;4.1架构中间件改变API改变数据格式改变 4.2特性4.3工具/生态…