C++数组名做函数形参/指针
数组名做函数形参
数组未开辟空间时
#include <iostream>
using namespace std;
void test(int* a)
{*a = 0;*(a+1) = 1;*(a+2) = 2;cout<<a[0]<<a[1]<<a[2]<<endl;return;
}
int main(int argc,char* argv[])
{int* a;test(a);cout<<a[0]<<a[1]<<a[2]<<endl;return 0;
}
输出为空,因为a没有开辟内存。
开辟内存时
#include <iostream>
using namespace std;
void test(int* a)
{*a = 0;*(a+1) = 1;*(a+2) = 2;return;
}
int main(int argc,char* argv[])
{int* a = new int[10];test(a);cout<<a[0]<<a[1]<<a[2]<<endl;return 0;
}
输出为012,因为a开辟了内存。
指针
指针变量所占内存空间
指针自身也是一个变量类型,占8个字节。
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{cout<<sizeof(int*)<<endl;cout<<sizeof(double*)<<endl;cout<<sizeof(char*)<<endl;
}
指针数组/数组指针
指针数组 int* a[5] 是一个数组,数组内部的变量为指针类型
数组指针 int (*a)[5] 是一个指针,指针指向数组类型变量
#include <iostream>
using namespace std;
int main(int argc,char* argv[])
{// 指针数组int a = 1;int b = 2;int* a_ptr = &a;int* b_ptr = &b;int* type1[2] = {a_ptr,b_ptr};cout<<*type1[0]<<endl;// 数组指针int(*c)[2];int d[2] = {1,2};c = &d;cout<<*(*c+1);
}
C++数组名做函数形参/指针相关推荐
- Day17 指针变量做函数形参 指针函数 函数指针
1. 指针变量做函数形参 1.1指针变量做一维数组形参 首先先了解如何定义一个一维数组指针 int arr[5] = {1, 2, 3, 4, 5};//定义一个一维数组 int *parr = ar ...
- c语言数组名做函数的参数传递,【C 语言】数组元素和数组名作为函数参数
数组用作函数参数有两种形式: 一种是把数组元素(下标变量)作为实参使用: 一种是把数组名作为函数的形参和实参使用. 1.数组元素(下标变量)作为实参使用 数组元素作为函数实参使用与普通变量是完全相同的 ...
- 【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )
文章目录 一.多维数组做函数形参退化为指针过程 1.使用 int array[2][3] 作函数参数 2.使用 int array[][3] 作函数参数 3.使用 int (*array)[3] 作函 ...
- 数组传参中形参的秘密,以及数组名当作函数实际参数的特点,以及二维数组,以及外部变量和全局变量
1.数组传参中形参的秘密 第三行:形参中不存在数组的概念,即便是中括号约定了数组的大小,也无效. 第二十行:传递的是一个地址,是数组的首地址. 数组名代表了整个数组的首地址. 第二十一行:第一个元素的 ...
- 数组作为函数的参数传参时,数组名会退化为指针
1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...
- C语言-数组名真的不是指针
文章目录 1 前言 2 关于一维数组 3 sizeof运算符和自增运算符 4 数组名也不是常量指针 5 总结 1 前言 参照我之前的两篇文章: 二维数组做函数的参数 动态创建二维数组 事实告诉我们,二 ...
- c语言函数变量地址符,C语言中取地址符做函数形参?—— 引用的讨论
取地址符&做函数形参? C语言强大且危险 引入 这个问题花去了整整一天的研究. 先看一段严蔚敏的<数据结构>中栈的例程: 这里面的&S第一遍看的时候想当然的认为是取了SqS ...
- 在c语言程序中,数组名做函数调用的实参时,传递给形参的是,若用数组名作为函数调用时的实参,则实际上传递给的形参的是(C)...
若用数组名作为函数调用时的实参,则实际上传递给形参的是数组首地址. 数组首地址数组第一个元素的地址.数组名字本身就是一个指针,它是一个指针常量,指向的地址不变. 比如定义了一个数组变量,编译器就会在内 ...
- 剖析数组名、函数名(不是指针常量,更不是指针)
对于一个数组,如 int a[4]; 如果只是给出数组名a,编译器不知道该取该数组的第几个元素,因此编译器不会自动取值,而是返回该数组的首地址(第一个元素的地址).其实,数组名a就是数组本身,并不是 ...
最新文章
- JavaScript 变量
- 大数据引发的风险与管控
- 简述python程序结构_python架构的概念讲解
- ecshop 默认图处理
- ABPHelper.CLI及其依赖项简单介绍
- 程序员面试金典 - 面试题 05.07. 配对交换(位运算)
- php判断ipv6是否在范围内,[PHP] IPv6檢查IP是否在某個網段內 mtachcidr6
- gt1151触摸驱动调试
- java wmic_强大的命令行工具wmic
- SQL Server维护计划自动备份数据库
- PLC控制系统设计与调试的一般步骤
- CyanogenMod 和 Cyanogen OS 对比
- 安装net_speeder
- 4 数据校验和防碰撞
- 2020年拼多多校招面试题及答案-最全最新-持续更新中(2)
- 三星对韩国意味着什么?假如三星破产了,韩国会受到什么影响?
- 名编辑电子杂志大师教程 | 设置电子杂志的高宽比例
- Maximum length exceeded错误的解决办法
- 该爬破解验证码,爬企信宝必须破解滑块验证
- 【7 查找】二叉排序树查找关键字。