【每日C/C++问题】

一、C/C++中数组定义和初始化的方式有哪些?

int arr[100]; // 定义了数组arr,并未对数组进行初始化int arr[100] = {1, 2}; // 定义并初始化了数组arr前两个元素,其他元素为0int arr[3] = {1, 2, 3}; // 定义并初始化了数组arr所有元素int arr[] = {1, 2, 3}; // 不指定大小,根据初始化值确定数组大小int *arr = new int[100]; //定义了数组arr,并未对数组进行初始化,不用时需要用delete [] 释放int *arr = new int[100](); //定义了数组arr,默认初始化为0,不用时需要delete [] arr
// 使用循环初始化数组元素
int arr[5];
for (int i = 0; i < 5; i++) {arr[i] = i;
}
数组元素为1,2,3,4,5

二、数组名字有什么含义?

1. 数组名代表数组首元素的地址:

int a[3], *p = a; // a表示数组首元素的地址//此时 p + 1 与 a + 1 等价都指向数组的第二个元素

2. 在一些特殊情况下,如sizeof中数组名代表整个数组

// x64   指针变量(地址)占8个字节
// x86   指针变量(地址)占4个字节
//该示例编译环境为 x86
#include<iostream>
using namespace std;
#include <string>
int main() {int a[5] = { 1,2,3,4,5 };cout << sizeof(a) << endl; // a代表整个数组cout << sizeof(a + 0) << endl; // a进行运算代表数组首元素地址cout << sizeof(*a) << endl; // a代表数组首元素地址,*a 为 a[0]cout << sizeof(a + 1) << endl; // a进行运算代表数组首元素地址,a + 1 代表a[1]的地址 cout << sizeof(a[1]) << endl; // a[1]为int类型变量占四个字节cout << sizeof(&a) << endl; // &a 在数值上与 a 和 &a[0] 相等,&a 数值上等于整个数组的起始位置地址,含义上代表整个数组所占内存的大小,因为它的进阶单位是整个数组的字节长度,(&a + 1)等于的是数组结束之后的下一段的起始位置地址。cout << sizeof(*&a) << endl; // * 和 & 抵消掉 a 代表整个数组cout << sizeof(&a + 1) << endl; // (&a + 1)等于的是数组结束之后的下一段的起始位置地址。cout << sizeof(&a[0]) << endl; // x86   指针变量(地址)占4个字节cout << sizeof(&a[0] + 1) << endl; // x86   指针变量(地址)占4个字节,&a[0] + 1 表示的是 a[1] 的地址return 0;
}

         &a 在数值上与 a 和 &a[0] 相等,&a 数值上等于整个数组的起始位置地址,含义上代表整个数组所占内存的大小,因为它的进阶单位是整个数组的字节长度,(&a + 1)等于的是数组结束之后的下一段的起始位置地址。

输出

20
4
4
4
4
4
20
4
4
4

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

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

相关文章

【ShuQiHere】 如何理解渐进符号及其应用:大 O、大 Ω 和大 Θ

List item &#x1f4d8; 【ShuQiHere】 &#x1f680; 在算法复杂度分析中&#xff0c;渐进符号&#xff08;Asymptotic Notation&#xff09;是必不可少的工具&#xff0c;帮助我们估计算法的时间和空间需求&#xff0c;特别是当输入规模非常大时。这篇文章将为大家详细介绍…

Docker篇(安装容器)

目录 一、安装mysql容器 1. 拉取mysql镜像 2. 创建并运行容器 二、安装Tomcat容器 1. 拉取镜像 2. 创建并运行容器 三、安装Nginx容器 1. 拉取镜像 2. 创建并运行容器 四、安装Redis容器 1. 拉取镜像 2. 创建并运行容器 五、安装RabbitMQ 1. 拉取镜像 2. 创建并运…

Python酷库之旅-第三方库Pandas(187)

目录 一、用法精讲 866、pandas.Index.T属性 866-1、语法 866-2、参数 866-3、功能 866-4、返回值 866-5、说明 866-6、用法 866-6-1、数据准备 866-6-2、代码示例 866-6-3、结果输出 867、pandas.Index.memory_usage方法 867-1、语法 867-2、参数 867-3、功能 …

PostgreSQL 到 PostgreSQL 数据迁移同步

简述 PostgreSQL 是一个历史悠久且广泛使用的数据库&#xff0c;不仅具备标准的关系型数据库能力&#xff0c;还具有相当不错的复杂 SQL 执行能力。用户常常会将 PostgreSQL 应用于在线事务型业务&#xff0c;以及部分数据分析工作&#xff0c;所以 PostgreSQL 到 PostgreSQL …

JDK的下载

目录 JDK官网 Windows Ubantu 1.安装JDK 2.确定JDK版本 卸载OpenJDK Centos 1.下载JDK 2.安装JDK 3.验证JDK JDK官网 官网网址&#xff1a;Java Downloads | Oracle Windows 双击运⾏exe⽂件, 选择安装⽬录, 直⾄安装完成 Ubuntu 1.安装JDK 更新软件包 sudo apt u…

(56)MATLAB分析码间串扰信道的传递函数与频率响应

文章目录 前言一、3个存在码间串扰的信道二、信道特性仿真三、仿真结果四、迫零均衡器与MMSE均衡器仿真总结 前言 线性均衡器的性能完全取决于通信信道的特性。本文设计了三个不同传输特性的信道&#xff0c;给出了其传递函数系数&#xff0c;然后计算并绘制了各自的频率响应。…

etcd多实例配置

多实例进行配置&#xff0c;分别在多个不同端口进行监听&#xff0c;避免开启单机部署监听端口冲突&#xff1b; 查看go版本&#xff1a; go version 若没有go环境&#xff0c;则进行下载&#xff0c;解压至/usr/local后进行环境配置&#xff0c;编辑vim ~./bashrc vim ~./b…

029_Common_Plots_Matlab常见二维绘图

常用的二维绘图 常用绘图包括下面的种类&#xff1a; 线图&#xff0c; plot柱图&#xff0c; bar梯步图&#xff0c;stairstep误差棒图&#xff0c;errorbar极坐标图&#xff0c;polarplot跟图&#xff0c;stem散点图&#xff0c;scatter 这些命令都可以通过help xxx来查看…

NuGet Next发布,全新版私有化NuGet管理

NuGet Next发布&#xff0c;全新版私有化NuGet管理 NuGet Next是一款基于BaGet的一款私有化NuGet管理平台&#xff0c;我们对BaGet进行了扩展&#xff0c;并且提供了更多的功能。 NuGet 最新版开源私有化包管理&#xff0c;我们基于BaGet的基础之上增加了更多的功能&#xff…

STM32 从0开始系统学习5

目录 STM32 GPIO输入的四种模式 Practice And Usage 练习与封装 Detailed And Reference 更加具体的说明 输入浮空模式 输入上拉模式 输入下拉模式 模拟功能 我们下面聊一聊输入的事情&#xff0c;输入指的是我们的处理器从外部端口接受外设发过来的信号。在我们没有接…

PHP反序列化原生类字符串逃逸框架反序列化利用

PHP反序列化 概念 序列化的原因&#xff1a;为了解决开发中数据传输和数据解析的一个情况(类似于要发送一个椅子快递&#xff0c;不可能整个椅子打包发送&#xff0c;这是非常不方便的&#xff0c;所以就要对椅子进行序列化处理&#xff0c;让椅子分成很多部分在一起打包发送…

WonderWorld: Interactive 3D Scene Generation from a Single Image 论文解读

目录 一、概述 二、相关工作 1、新视图生成 2、单视图3D场景生成 3、视频生成 4、快速的3D场景表示 三、WonderWorld 1、FLAGS表示 2、引导深度扩散模块 3、单视角层次生成 4、基于几何的初始化 surfel表示 5、阶段一——生成3D场景部分 6、阶段二——用户交互控…

网络:IP分片和组装

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言16位标识&#xff0c;3位标志&#xff0c;13位片偏移分片组装总结 前言 对于IP分片和组装的总结 当一个IP数据报的大小超过网络的MTU(最…

从0到1搭建flink程序-WordCount(图文/详细/mac)

目录 一、目标以及前置资料 1.1 目标 1.2 前置资料 二、实现 2.1 搭建流程 2.2 调试 参考 一、目标以及前置资料 1.1 目标 初步感受flink任务&#xff0c;从0到1快速搭建一个flink程序 1.2 前置资料 1、下载jdk&#xff1a;Mac 安装jdk_mac 安装jdk 1.8-CSDN博客 2、…

ctfshow——web(总结持续更新)

文章目录 1、基础知识部分2、php伪协议2.1 php://input协议2.2 data://text/plain协议 3、webshell连接工具3.1 蚁剑连接一句话木马 4、各个web中间件重要文件路径4.1 Nginx 5、sqlmap使用6、php特性6.1 md5加密漏洞 7、TOP 10漏洞7.1 SQL注入 1、基础知识部分 识别base64编码…

FineReport 倒计时特效

1、代码准备 将下面的代码生成对应文件 1.1、zzsc.js 这段代码是一个JavaScript计时器脚本&#xff0c;用于计算从当前时间到第二天午夜&#xff08;即0点&#xff09;之间的时间差&#xff0c;并将这个时间差显示在网页上的特定元素中。具体来说&#xff0c;它会实时更新页…

【Linux】编辑器vim 与 编译器gcc/g++

目录 一、编辑器vim&#xff1a; 1、对vim初步理解&#xff1a; 2、vim的模式&#xff1a; 3、进入与退出&#xff1a; 4、vim命令模式下的指令集&#xff1a; 移动光标&#xff1a; 删除&#xff1a; cv&#xff1a; 撤销&#xff1a; 其他&#xff1a; 5、vim底行模…

虚拟机 Ubuntu 扩容

文章目录 一、Vmware 重新分配 Ubuntu 空间二、Ubuntu 扩容分区 一、Vmware 重新分配 Ubuntu 空间 先打开 Vmware &#xff0c;选择要重新分配空间的虚拟机 点击 编辑虚拟机设置 &#xff0c;再点击 硬盘 &#xff0c;再点击 扩展 选择预计扩展的空间&#xff0c;然后点击 扩展…

【搜索引擎】俄罗斯搜索引擎yandex

俄罗斯搜索引擎yandex 1997年&#xff0c;俄罗斯搜索引擎Yandex&#xff08;俄语意为&#xff1a;语言目录&#xff09;首次上线&#xff0c;已发展成为全球第四大搜索引擎和第二大非英语搜索引擎 https://yandex.com/

【深度学习】CrossEntropyLoss需要手动softmax吗?

【深度学习】CrossEntropyLoss需要手动softmax吗&#xff1f; 问题&#xff1a;CrossEntropyLoss需要手动softmax吗&#xff1f;答案&#xff1a;不需要官方文档代码解释 问题&#xff1a;CrossEntropyLoss需要手动softmax吗&#xff1f; 之前用 pytorch 实现自己的网络时&…