c/c++ 数组 数组的引用,指针数组的引用
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++ 数组 数组的引用,指针数组的引用的更多相关文章
- c/c++ 函数指针 指针函数 数组的引用 指针数组 数组指针
1.指针数组数组指针 引用数组 数组的引用 int *a[10] 指针数组 每一个元素都是一个指针 Int (*a)[10] 数组指针 P指向一个含有10个元素的数组 Int (&a)[10] ...
- o4.数组指针和指针数组的区别
------- android培训.iOS培训.期待与您交流! ---------- 我们看一下数组指针和指针数组: 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个 ...
- 指针数组&数组指针
数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数 ...
- [C++]数组指针与指针数组
//声明: 1.&----取地址运算符 eg: int m = 1; int *p = &m;//(*p) == m的地址 == &m; 2.*----间接访问运算符 eg: ...
- go语言学习--指针数组和数组指针
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...
- 数组指针与指针数组(good)
数组指针和指针数组的区别 数组指针(也称行指针) 定义 int (*p)[n]; ()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p ...
- CPP-基础:函数指针,指针函数,指针数组
函数指针 函数指针是指向函数的指针变量. 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数.这正如用指针变量可指向整型变量.字符型.数组一样,这里是指向函数.如前所述,C在编译时,每一个 ...
- 【转】数组指针&指针数组
转自:https://www.cnblogs.com/mq0036/p/3382732.html 数组指针和指针数组的区别 数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p ...
- 【转自hongcha_717】数组指针和指针数组的区别
数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长.也就是说执行p+1时,p要跨过n个整型数据的 ...
随机推荐
- MySQL模糊匹配查询like、regexp、in
MySQL提供标准的SQL模式匹配,以及一种基于像Unix实用程序,如:vi.grep和sed的扩展正则表达式模式匹配的格式 一.SQL模式(% ,_) SQL的模式匹配允许你使用“_”匹配任何单个字 ...
- 微信公众号开发模型WeChat
模型:WeChat (回复参考weiphp) <?php namespace Org; /** * 微信开发工具类 * Class WeChat * Author chenqionghe * @ ...
- dubbo源码解析五 --- 集群容错架构设计与原理分析
欢迎来我的 Star Followers 后期后继续更新Dubbo别的文章 Dubbo 源码分析系列之一环境搭建 博客园 Dubbo 入门之二 --- 项目结构解析 博客园 Dubbo 源码分析系列之 ...
- [转]docker之Dockerfile实践
本文转自:https://www.cnblogs.com/jsonhc/p/7767669.html 上一篇介绍了Dockerfile中使用的指令,现在开始进行指令实践 先查看下本地的镜像,选一个作为 ...
- IdentityServer开题篇
最近也研究了一段时间的IdentityServer4,园里关于IdentityServer的文章也很多,这里也简单写写,做做记录(文笔不佳,见谅). 1.identityserver是什么? Iden ...
- [PHP]算法-跳台阶问题的PHP实现
一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 思路: 1.找规律 f(1)=1 f(2)=2 f(3)=3 f(4)=5 f( ...
- mybatis_02简单操作数据库
模糊查询用户信息 <!-- [${}]:表示拼接SQL字符串 [${value}]:表示要拼接的是简单类型参数. 注意: 1.如果参数为简单类型时,${}里面的参数名称必须为value 2.${ ...
- JavaScript是如何工作的:Web Workers的构建块 + 5个使用他们的场景
摘要: 理解Web Workers. 原文:JavaScript是如何工作的:Web Workers的构建块 + 5个使用他们的场景 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 这 ...
- 布局优化之ViewStub源码分析
源码分析 @RemoteView public final class ViewStub extends View { private int mInflatedId; private int mLa ...
- Android智能指针SP WP使用方法介绍
Android手机操作系统既然是开源的操作系统.那么在具体的文件夹中就会存放着各种相关功能的开源代码.我们在使用的时候可以根据这些源代码进行相应的修改就能轻松的完成我们所需的功能.在这里大家就一起来看 ...