c++初始

目录

一数据类型

1.

2.sizeof

3.布尔

4.字符串类型

二.数据输入与输出

1.输出

 2.输入

三.运算

1.加减乘除取模,++,--都一样

2.逻辑非与或,与C语言一样

3.比较运算符,与C语言一样

4.三目运算符(与C语言一样)

四.条件,循环语句与C语言一样

五.一维数组

1.特点

2.定义

3.冒泡排序

六.二维数组

1.定义

2.地址

七.函数

1.基础函数跟C语言一样

2.函数的分文件编写:

八.指针

1.基础(与C语言一样)

2.指针所占内存空间

3.空指针/野指针

4.const(也可以详见C语言书)


一数据类型

1.

| **数据类型**        | **占用空间**                                    | 取值范围         |

| short(短整型)       | 2字节                                           | (-2^15 ~ 2^15-1) |

| int(整型)           | 4字节                                           | (-2^31 ~ 2^31-1) |

| long(长整形)        | Windows为4字节,Linux为4字节(32位),8字节(64位) | (-2^31 ~ 2^31-1) |

| long long(长长整形) | 8字节                                           | (-2^63 ~ 2^63-1) |

| float        | 4字节        | 7位有效数字      |

| double       | 8字节        | 15~16位有效数字 |

|char           | 1字节 |

C和C++中字符型变量只占用1个字节

2.sizeof

统计数据类型所占内存大小

sizeof(数据类型);

3.布尔

bool a  = true  --- 真(本质是1)

bool a = false --- 假(本质是0)

#include<iostream>
using namespace std;
int main() {bool flag = true;cout << flag << endl; // 1flag = false;cout << flag << endl; // 0cout << "size of bool = " << sizeof(bool) << endl; //1system("pause");return 0;
}

PS:输入的时候,所有非零值都代表的是真

例如:

#include<iostream>
using namespace std;
int main()
{bool a =199;cout << "a是真吗,a = " << a << endl;//a是真吗,a = 1return 0;
}

4.字符串类型

(1)C语言风格

        char 变量名[] = "......";

(2)c++风格

        #include<string>;

        string s = "........";

#include<iostream>
#include<string>
using namespace std;
int main()
{char s1[] =  "hhhh";string s2 = "阿萨德";cout<< s1 << s2<<endl;return 0;
}

二.数据输入与输出

1.输出

cout<< "(要输出的语句)"<< (变量)<< ......  <<endl;

        PS:endl是换行符

#include<iostream>
using namespace std;
int main()
{bool a =true;cout << "a是真吗,a = " << a <<"哎嘿嘿"<< endl;return 0;
}

 2.输入

cin >> 变量

#include<iostream>
#include<string>
using namespace std;
int main()
{string str;cout << "请输入字符串型变量:" << endl;cin >> str;cout << str << endl;
}

三.运算

1.加减乘除取模,++,--都一样

        PS:浮点型不能取模运算

2.逻辑非与或,与C语言一样

3.比较运算符,与C语言一样

唯一需要注意的是,使用时要加括号,否则会报错(无法确定需要哪个 函数模板 "std::endl" 实例)

        cout << a == b << endl;

#include<iostream>
using namespace std;
int main()
{int a =10;int b = 20;cout << (a==b) << endl;return 0;
}

4.三目运算符(与C语言一样)

expression1 ? expression2:expression3;

如果表达式1的值为真,执行表达式2,否则执行表达式3。

四.条件,循环语句与C语言一样

五.一维数组

1.特点

特点1:数组中的每个数据元素都是相同的数据类型

特点2:数组是由连续的内存位置组成的

特点3: 可以统计整个数组在内存中的长度

特点4: 可以获取数组在内存中的首地址

#include<iostream>
using namespace std;
int main() {//数组名用途//1、可以获取整个数组占用内存空间大小int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;//2、可以通过数组名获取到数组首地址cout << "数组首地址为: " << arr << endl;cout << "数组中第一个元素地址为: " << &arr[0] << endl;cout << "数组中第二个元素地址为: " << &arr[1] << endl;//arr = 100; 错误,数组名是常量,因此不可以赋值return 0;
}

2.定义

(1)数据类型  数组名[ 数组长度 ]; 

(2)数据类型  数组名[ 数组长度 ] = { 值1,值2 ...};`

(3)数据类型  数组名[ ] = { 值1,值2 ...};

3.冒泡排序

#include<iostream>
using namespace std;
int main() {int arr[9] = { 4,2,8,0,5,7,1,3,9 };for (int i = 0; i < 9 - 1; i++){for (int j = 0; j < 9 - 1 - i; j++){if (arr[j] > arr[j + 1]){int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}for (int i = 0; i < 9; i++){cout << arr[i] << " ";}return 0;
}

六.二维数组

1.定义

(1.) ` 数据类型  数组名[ 行数 ][ 列数 ]; `

(2). `数据类型  数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };`

(3.) `数据类型  数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};`

(4). ` 数据类型  数组名[  ][ 列数 ] = { 数据1,数据2,数据3,数据4};`

        PS:在定义二维数组时,如果初始化了数据,可以省略行数

2.地址

        与C语言一样

        二维数组的变量名 = 二维数组地址 =首元地址 = 第一行地址

#include<iostream>
using namespace std;
int main() {//二维数组数组名int arr[2][3] ={{1,2,3},{4,5,6}};cout << "二维数组大小: " << sizeof(arr) << endl;//24,整个二维数组大小cout << "二维数组一行大小: " << sizeof(arr[0]) << endl;//12cout << "二维数组元素大小: " << sizeof(arr[0][0]) << endl;//4cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;//2cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;//3//地址cout << "二维数组首地址:" << arr << endl;//0x61fe00cout << "二维数组第一行地址:" << arr[0] << endl;//0x61fe00cout << "二维数组第二行地址:" << arr[1] << endl;cout << "二维数组第一个元素地址:" << &arr[0][0] << endl;//0x61fe00cout << "二维数组第二个元素地址:" << &arr[0][1] << endl;return 0;
}

七.函数

1.基础函数跟C语言一样

2.函数的分文件编写:

        1. 创建后缀名为.h的头文件  

        2. 在头文件中写函数的声明

//swap.h文件
#include<iostream>
using namespace std;//实现两个数字交换的函数声明
void swap(int a, int b);

        3. 创建后缀名为.cpp的源文件

        4. 在源文件中写函数的定义(注意加上库函数xxx.h)

//swap.cpp文件
#include "swap.h"
#include<iostream>
using namespace std;
void swap(int a, int b)
{int temp = a;a = b;b = temp;cout << "a = " << a << endl;cout << "b = " << b << endl;
}
int main() 
{int a = 100;int b = 200;swap(a, b);return 0;
}

八.指针

1.基础(与C语言一样)

牢记:&地址符

            *解引符

#include<iostream>
using namespace std;
int main()
{int a =10;int * p = &a;cout << p<<endl;//0x61fe14cout << &a;//0x61fe14return 0;
}

2.指针所占内存空间

#include<iostream>
using namespace std;
int main()
{int a =10;int * p = &a;cout << sizeof(p)<<endl;//8return 0;
}

总结:所有指针类型在64位操作系统下是8个字节

        所有指针类型在32位操作系统下是4个字节

3.空指针/野指针

#include<iostream>
using namespace std;
int main() {//指针变量p指向内存地址编号为0的空间int * p = NULL;cout << p << endl;//0//访问空指针报错 //内存编号0 ~255为系统占用内存,不允许用户访问cout << *p << endl;return 0;
}

    //访问空指针报错

    //内存编号0 ~255为系统占用内存,不允许用户访问

(2)野指针:指针变量指向非法的内存空间

4.const(也可以详见C语言书)

#include<iostream>
using namespace std;
int main() {int a = 10;int b = 10;//const修饰的是指针,指针指向可以改,指针指向的值不可以更改const int * p1 = &a; p1 = &b; //正确//*p1 = 100;  报错//const修饰的是常量,指针指向不可以改,指针指向的值可以更改int * const p2 = &a;//p2 = &b; //错误*p2 = 100; //正确//const既修饰指针又修饰常量const int * const p3 = &a;//p3 = &b; //错误//*p3 = 100; //错误return 0;
}

总结:const修饰常量,就是指针常量,不可以改指针方向,可以改值。      

            int * const p2 = &a;

            //p2 = &b; //错误

            *p2 = 100; //正确

       const修饰指针,就是常量指针,不可以改值,可以改指针方向。

                    const int * p1 = &a;

                    p1 = &b; //正确

                    //*p1 = 100;  报错

硬记:const  p,不可以改变指针方向, int * const p2 = &a;

           const int*,可以改变指针方向,  const int * p1 = &a;

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

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

相关文章

开发完的小程序如何分包

好几次了&#xff0c;终于想起来写个笔记记一下 我最开始并不会给小程序分包&#xff0c;然后我就各种搜&#xff0c;发现讲的基本上都是开发之前的小程序分包&#xff0c;可是我都开发完要发布了&#xff0c;提示我说主包太大需要分包&#xff0c;所以我就不会了。。。 好了…

Java进阶篇之多线程

引言 &#x1f680; 在前面的文章中&#xff0c;我们介绍了NIO&#xff08;Java进阶篇之NIO基础&#xff09;。你是不是曾经在面对需要处理大量任务的应用时&#xff0c;感觉单线程根本不够用&#xff1f;&#x1f613; 如果你想让你的应用运行得更快、更高效&#xff0c;多线…

Visual Studio 使用 “Ctrl + /”键设置注释和取消注释

问题&#xff1a;在默认的Visual Studio中&#xff0c;选择单行代码后&#xff0c;按下Ctrl /键会将代码注释掉&#xff0c;但再次按下Ctrl /键时&#xff0c;会进行双重注释&#xff0c;这不是我们想要的。 实现效果&#xff1a;当按下Ctrl /键会将代码注释掉&#xff0c;…

DeepSeek投喂数据(训练AI)

1、拉取nomic-embed-text 打开命令行&#xff0c;运行&#xff1a;ollama pull nomic-embed-text 这里需要先安装ollama &#xff0c;不过大家应该在本地部署模型时已经安装了 拉取成功就行了&#xff0c;后续在配置AnythingLLM时用到 2、下载 AnythingLLM 地址&#xff1a…

【原创精品】基于Springboot3+Vue3的学习计划管理系统

大家好&#xff0c;我是武哥&#xff0c;最近给大家手撸了一个基于SpringBoot3Vue3的学习计划管理系统&#xff0c;可用于毕业设计、课程设计、练手学习&#xff0c;系统全部原创&#xff0c;如有遇到网上抄袭站长的&#xff0c;欢迎联系博主~ 项目演示视频 https://www.bili…

逆势而上,门店规模拓展的智慧攻略-中小企实战运营和营销工作室博客

逆势而上&#xff0c;门店规模拓展的智慧攻略-中小企实战运营和营销工作室博客 在竞争激烈、风云变幻的商业市场中&#xff0c;多数品牌在困境中艰难求生&#xff0c;而部分佼佼者却能突破重重阻碍&#xff0c;实现门店规模的逆势扩张。这些成功案例背后&#xff0c;究竟隐藏着…

基于改进型灰狼优化算法(GWO)的无人机路径规划

内容&#xff1a; 基于改进型灰狼优化算法的无人机轨迹规划 GWO是一种群体智能优化算法&#xff0c;模仿灰狼的社会等级和狩猎行为。原始的GWO有一些局限性&#xff0c;比如容易陷入局部最优&#xff0c;收敛速度慢等&#xff0c;所以改进型的GWO可能通过不同的策略来优化这些…

网络安全与AI:数字经济发展双引擎

在2025年年初&#xff0c;一场科技攻防战引发了全球关注。国产人工智能DeepSeek的爆火&#xff0c;伴随着大规模的网络攻击事件&#xff0c;将网络安全的重要性推上了风口浪尖。 在此背景下&#xff0c;我们计划探讨网络安全与人工智能如何为数字经济发展提供强大动力。网络安…

2.11学习记录

web——CTFHub XSS学习 学习资料&#xff1a;xss&#xff08;跨站攻击&#xff09; 原理 1.黑客发送带有xss恶意脚本的链接给用户 2.用户点击了恶意链接&#xff0c;访问了目标服务器&#xff08;正常的服务器&#xff09; 3.目标服务器&#xff08;正常的服务器&#xff09…

个人毕业设计--基于HarmonyOS的旅行助手APP的设计与实现(挖坑)

在行业混了短短几年&#xff0c;却总感觉越混越迷茫&#xff0c;趁着还有心情学习&#xff0c;把当初API9 的毕业设计项目改成API13的项目。先占个坑&#xff0c;把当初毕业设计的文案搬过来 摘要&#xff1a;HarmonyOS&#xff08;鸿蒙系统&#xff09;是华为公司推出的面向全…

零成本搭建私人图床教程:CloudFlare R2 + PicGo 完整方案

零成本搭建私人图床教程&#xff1a;CloudFlare R2 PicGo 完整方案 &#x1f680; 前言 图片托管服务在现代内容创作中扮演着重要角色。无论是技术博客、文档编写&#xff0c;还是在线教程制作&#xff0c;都离不开可靠的图片存储和分发系统。本教程将详细介绍如何利用 Clou…

Word2vec Skip-Gram 模型

图例 Skip-gram 模型&#xff0c;假设句子中的每个词都决定了相邻词的选取&#xff0c;所以你可以看到Skip-gram模型的输入是 W t W_{t} Wt​&#xff0c; 预测的输出是 W t W_t Wt​ 周边的词 也是说Skip-gram的目标是&#xff1a;给定一个中心词 W t W_t Wt​, 预测其上下…

【R语言】相关系数

一、cor()函数 cor()函数是R语言中用于计算相关系数的函数&#xff0c;相关系数用于衡量两个变量之间的线性关系强度和方向。 常见的相关系数有皮尔逊相关系数&#xff08;Pearson correlation coefficient&#xff09;、斯皮尔曼秩相关系数&#xff08;Spearmans rank corre…

网络工程师 (32)TRUNK

一、定义 TRUNK&#xff0c;也称为端口汇聚、链路汇聚或多链路汇聚&#xff0c;是一种网络技术&#xff0c;其本质是将多个以太网端口绑定在一起作为一个逻辑链路来使用。通过TRUNK技术&#xff0c;用户在使用这个逻辑链路时&#xff0c;就好像是在使用一条独立的物理链路一样&…

“可通过HTTP获取远端WWW服务信息”漏洞修复

环境说明&#xff1a;①操作系统&#xff1a;windows server&#xff1b;②nginx&#xff1a;1.27.1。 1.漏洞说明 “可通过HTTP获取远端WWW服务信息”。 修复前&#xff0c;在“响应标头”能看到Server信息&#xff0c;如下图所示&#xff1a; 修复后&#xff0c;“响应标头…

编译和链接【三】

文章目录 编译和链接【三】前言系列文章入口编译过程词法分析语法分析语义分析生成中间代码汇编链接 编译和链接【三】 前言 在我大一的时候&#xff0c; 我使用VC6.0对C语言程序进行编译链接和运行 &#xff0c; 然后我接触了VS&#xff0c; Qt creator等众多IDE&#xff0c…

波导阵列天线学习笔记8 高增益、低轴比的3D打印Ka波段圆极化单脉冲天线阵列

摘要&#xff1a; 本文中&#xff0c; 一种3D打印的16x16圆极化单脉冲天线阵列在Ka波段研究&#xff0c;有着高增益和低轴比的特点。此单脉冲天线阵列有着四个低剖面的左旋圆极化子阵列和一个顺序旋转的和差网络。这四个子阵列正交连接着和差网络的输出&#xff0c;保证了传统2…

高通android WIFI debug

参考高通文档&#xff1a;80-76240-16_REV_AA_Wi-Fi_Debug_Techniques 大纲 一、 WLAN Debug Logs –logcat ■ Logcat log logcat is a command-line tool that dumps the log of system messages, ■ Including stack traces when the device throws an error. ■ Need t…

Pytest自动化测试框架总结

1、pytest简介 pytest是Python的一种单元测试框架&#xff0c;与python自带的unittest测试框架类似&#xff0c;但是比unittest框架使用起来更简洁&#xff0c;效率更高。 执行测试过程中可以将某些测试跳过&#xff0c;或者对某些预期失败的case标记成失败能够支持简单的单元…

交叉编译工具链下载和使用

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…