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个整型数据的 ...
随机推荐
- ZAB协议简介
Zookeeper 使用 Zookeeper Atomic Broadcast (ZAB) 协议来保障分布式数据一致性. ZAB是一种支持崩溃恢复的消息广播协议,采用类似2PC的广播模式保证正常运行时 ...
- 南大算法设计与分析课程OJ答案代码(5)--割点与桥和任务调度问题
问题 A: 割点与桥 时间限制: 1 Sec 内存限制: 5 MB提交: 475 解决: 34提交 状态 算法问答 题目描述 给出一个无向连通图,找到所有的割点和桥 输入 第一行:点的个数,如果点 ...
- 第一册:lesson nineteen。
原文:tired and thirsty. A:What's the matter,children? B:We are tired and thirsty. A:Sit down,here. Are ...
- ResourceOwnerPassword模式使用数据库.
有时候, ResourceOwnerPassword模式有用的, 可以用来代替我们原来管理程序的开发方式. 因为管理程序本身拥有用户数据的权限嘛, 并不是第三方应用, 无需要授权 集成很简单. 1. ...
- 数据库部分(MySql)_4
约束 约束:给表的字段名添加限制条件; 非空约束(not null):添加非空约束后,字段值不能为null: 唯一约束(unique):添加唯一约束后,字段值不能重复: 主键约束(primary ke ...
- petapoco 实体中字段去掉关联(类似于EF中的NotMap)
怎么才能让不是数据库表中的字段放在实体中而不影响正常的插入和更新呢? 找到 PetaPoco.cs 文件,打开之后,搜索插入方法(Insert),然后继续找到下一层方法 就能看到如下代码: 看到这个注 ...
- 1.shell学习之常用语句
本章学习内容: 1.常见符号 2.命令分隔符-分号";" 3.双分号 ";;" 4. '单引号和"双引号 5.`反引号和$() 6.${}和$ 7.冒 ...
- Elastic-Job-分布式调度解决方案
Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成. Elastic-Job-Lite定位为轻量级无中心化解 ...
- java集合框架-List集合ArrayList和LinkedList详解
List 集合源码剖析 ✅ ArrayList 底层是基于数组,(数组在内存中分配连续的内存空间)是对数组的升级,长度是动态的. 数组默认长度是10,当添加数据超越当前数组长度时,就会进行扩容,扩容长 ...
- JavaScript初学者必看“箭头函数”
译者按: 箭头函数看上去只是语法的变动,其实也影响了this的作用域. 原文: JavaScript: Arrow Functions for Beginners 译者: Fundebug 为了保证可 ...