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

【每日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.mrgr.cn/news/63754.html

相关文章:

  • 【5.5】指针算法-三指针解决颜色分类
  • 通俗易懂的餐厅例子来讲解JVM
  • 4种鼓励创业创新的方法
  • 列表(排列整齐),表格,表单(登录,注册)(HTML)
  • 弃用 RestTemplate,来了解一下官方推荐的 WebClient !
  • SCSS在Vue中的用法
  • 【数据库系统概论】第3章 关系数据库标准语言SQL(一)数据查询(超详细)
  • __init__.py __all__和 __name__的作用及其用法
  • 《DelayQueue:Java界的“延时大师”》
  • Android 字节飞书面经
  • 生信入门第八课:RNA-seq比对、定量和差异分析
  • 项目_Linux_网络编程_私人云盘
  • Linux用户权限管理
  • Linux操作系统下载(centos)
  • 操作系统-多线程案例
  • 5天学习RAG路线图,你信吗?
  • 遥感图像Trento原始数据集下载
  • 如何在 Vue 页面中禁止选择、右键、复制及 F12 开发者工具
  • shell脚本编程
  • 奥数与C++小学四年级(第十八题 小球重量)
  • excel的宏1
  • 2024 年河南省高等职业教育技能大赛实施方案概述
  • 智能指针(内存泄漏问题)
  • JavaScript网页设计案例:智慧社区可视化大屏的实现
  • 如何使用和打开jconsole
  • 基于Python的黑龙江旅游景点数据分析系统【附源码】