c/c++ 数组

知识点

1,数组的声明和初始化,对应代码里的test1和test2

2,char数组,对应代码里的test3

3,数组不可以拷贝和复制,对应代码里的test4

4,指针数组, 数组的指针, 数组的引用,指针数组的引用,对应代码里的test5

5,数组的范围for用法,对应代码里的test6

6,用size_t作为下标的类型,对应代码里的test6

#include <iostream>
#include <string>
#include <cstddef> using namespace std; int main(){
//test1 声明时必须指定数组的大小
/*
unsigned cnt = 42;
constexpr unsigned sz = 42;
int arr[10];
int *parr[sz];
string bad[cnt];
bad[23] = "aaa";
cout << bad[23] << endl;
*/ //test2 初始化
/*
const unsigned sz = 3;
int ia1[sz] = {1,2,3};//含有3个元素的数组,元素值:1,2,3
int a2[] = {1,2,3};//含有3个元素的数组,元素值:1,2,3
int a3[5] = {1,2,3};//含有5个元素的数组,元素值:1,2,3,0,0
cout << a3[3] << a3[4] << endl;
string a4[3] = {"ni", "go"};//含有3个元素的数组,元素值:"ni","go",""
cout << a4[2] << endl;
//int a5[2] = {1,2,3};//错误
*/ //test3 char数组
/*
char a1[] = {'a','b','c'};//列表初始化,没有尾部\0
cout << a1 << endl;//因为没有尾部的\0,所以会一直打印到\0为止
char a2[] = {'a','b','c', '\0'};//列表初始化,有尾部\0
cout << a2 << endl;
char a3[] = "abc";//自动添加尾部的\0
cout << a3 << endl;
//char a4[3] = "abc";//错误,指定了大小为3,无法在c后面加\0
*/ //test4 数组拷贝和赋值
/*
int a[] = {1,2,3};
//int a1[] = a;//不能拷贝数组
int a2[] = {1,1,1};
//a2 = a;//不能用数组给数组赋值
*/ //test5 指针数组, 数组的指针, 数组的引用,指针数组的引用
/*
//指针数组
int* pt[10];//ptr指向含有10个整型指针的数组
//数组的指针
int (*parr)[10];//parr指向一个含有10个整数的数组,应用于二维数组
int br[2][10];
parr = br;
if(parr + 1 == &br[1]){
cout << "==" << endl;
parr[0][0] = 10;
cout << br[0][0] << endl;
}
int arr[10];
//数组的引用
int (&af)[2][10] = br;
af[0][1] = 123;
cout << br[0][1] << endl;
int (&arrRef)[10] = arr;
arrRef[0] = 100;
arrRef[1] = 10;
cout << arrRef[0] << "," << arrRef[1] << endl;
//指针数组的引用
int* (&ar)[10] = pt;
int a = 5;
ar[0] = &a;
*ar[0] = 500;
cout << a << endl;
*/ //test6 数组的范围for用法
int ar[5] = {};
for(auto &s : ar){
s = s + 1;
}
//用size_t作为下标的类型,包括在cstddef头文件里
size_t idx = 1;
ar[idx] = 100;
for(auto s : ar){
cout << s << ",";
}
cout << endl;
}

c/c++ 数组 数组的引用,指针数组的引用的更多相关文章

  1. c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针

    1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...

  2. o4.数组指针和指针数组的区别

    ------- android培训.iOS培训.期待与您交流! ---------- 我们看一下数组指针和指针数组: 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个 ...

  3. 指针数组&数组指针

    数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数 ...

  4. [C++]数组指针与指针数组

    //声明: 1.&----取地址运算符 eg: int m = 1; int *p = &m;//(*p) == m的地址 == &m; 2.*----间接访问运算符 eg: ...

  5. go语言学习--指针数组和数组指针

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...

  6. 数组指针与指针数组(good)

    数组指针和指针数组的区别 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p ...

  7. CPP-基础:函数指针,指针函数,指针数组

    函数指针 函数指针是指向函数的指针变量. 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所述,C在编译时,每一个 ...

  8. 【转】数组指针&指针数组

    转自:https://www.cnblogs.com/mq0036/p/3382732.html 数组指针和指针数组的区别 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p ...

  9. 【转自hongcha_717】数组指针和指针数组的区别

    数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...

随机推荐

  1. python 闯关之路四(下)(并发编程与数据库编程)

    并发编程重点: 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别.互斥锁.信号. 事件.join.GIL.进程间通信.管道.队列. 生产者消息者模型.异步模 ...

  2. Canal 源码走读

    前言 canal 是什么? 引用一下官方回答: 阿里巴巴mysql数据库binlog的增量订阅&消费组件 canal 能做什么? 基于日志增量订阅&消费支持的业务: 数据库镜像 数据库 ...

  3. Hystrix降级逻辑中如何获取触发的异常

    通过之前Spring Cloud系列教程中的<Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)>一文,我们已经知道如何通过Hystrix来保护自己的服务不被外 ...

  4. PHP开发中bcscale timezone charset的设定

    关于php的开发,有几个细节设定,需要知悉下:在项目的init.php 或 index.php 或 api.php 1. bcscale(18); 表示bc函数,默认小数点位数. 没有设定的话,默认为 ...

  5. Ubuntu 安装 JDK8 的两种方式

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  6. WPF 窗口

    在WPF中,经常需要对窗口进行设置,下面讲讲常用的几个设置. 窗口样式 1.无边框窗口 无边框透明窗体 设置 WindowStyle="None"--无边框,如果需要其它按钮,如缩 ...

  7. 如何在 Mac上 安裝 .NET Core 2.1 ?

    一.前言 Free. Cross-platform. Open source. A developer platform for building all your apps. --- .net co ...

  8. Java_冒泡排序_原理及优化

    冒泡排序及其优化 一.原理及优化原理 1.原理讲解 冒泡排序即:第一个数与第二个数进行比较,如果满足条件位置不变,再把第二个数与第三个数进行比较.不满足条件则替换位置,再把第二个数与第三个数进行比较, ...

  9. 【MAC】安装神器brew

    安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...

  10. java实现无序数组结构

    一.数组的2种定义方式 数据类型 []  数组名称 = new 数据类型[数组长度]; 这里 [] 可以放在数组名称的前面,也可以放在数组名称的后面,一般放在名称的前面 数据类型 [] 数组名称 = ...