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个整型数据的 ...
随机推荐
- 【原创】Python第二章——行与缩进
Python的基本组成——逻辑行和缩进 a="我是一个物理行" a="""我是一个逻辑行 因为我一条语句便跨越了2个物理行""&q ...
- tomcat没有编译重新编写的代码
今天在工作的时候,我把项目的mapper.xml的的sql语句改了,但是在启动项目,在页面访问数据的时候,发现控制打印出来的sql语句还是原来的,没有改过来. 在tomcat里找到我的代码,找到我修改 ...
- python使用多进程
python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势. 针对计算密集型场景需要使用多进程,python的multipro ...
- spring-boot-2.0.3之quartz集成,最佳实践
前言 开心一刻 快过年了,大街上,爷爷在给孙子示范摔炮怎么放,嘴里还不停念叨:要像这样,用劲甩才能响.示范了一个,两个,三个... 孙子终于忍不住了,抱着爷爷的腿哭起来:爷呀,你给我剩个吧! 新的一年 ...
- Pytorch1.0入门实战一:LeNet神经网络实现 MNIST手写数字识别
记得第一次接触手写数字识别数据集还在学习TensorFlow,各种sess.run(),头都绕晕了.自从接触pytorch以来,一直想写点什么.曾经在2017年5月,Andrej Karpathy发表 ...
- 翻译:XtraDB/InnoDB中的AUTO_INCREMENT处理方式(已提交到MariaDB官方手册)
本文为mariadb官方手册:XtraDB/InnoDB中的AUTO_INCREMENT处理方式的译文. 原文:https://mariadb.com/kb/en/auto_increment-han ...
- HttpClients+Jsoup抓取笔趣阁小说,并保存到本地TXT文件
前言 首先先介绍一下Jsoup:(摘自官网) jsoup is a Java library for working with real-world HTML. It provides a very ...
- YARN集群的mapreduce测试(五)
将user表计算后的结果分区存储 测试准备: 首先同步时间,然后master先开启hdfs集群,再开启yarn集群:用jps查看: master上: 先有NameNode.SecondaryNameN ...
- 【golang-GUI开发】qt之signal和slot(二)
上一篇文章里我们详细介绍了signal的用法. 今天我们将介绍slot的使用.在qt中slot和signal十分相像,这次我们将实现一个能显示16进制数字的SpinBox,它继承自QSpinbox并重 ...
- 【转载】Sqlserver通过维护计划定时自动备份数据库
Sqlserver数据库的运维过程中,数据库的备份操作至关重要,平时我们都是手动进行数据库的备份操作.如果要做到让数据库定时自动备份,则可以使用Microsoft SQL Server Managem ...