栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

c++课本例题及知识点验证(更新于6

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

c++课本例题及知识点验证(更新于6

目录

一.数组作为函数参数(形参重新开辟内存单元接收实参地址)


一.数组作为函数参数
  • 数组元素和数组名都可以作为函数的参数以实现函数之间数据的共享和传递;
  • 使用数组名传递数据时,传递的是地址;
  • 形参数组和实参数组的首地址重合:形参数组重新开辟内存单元来接收实参数组的地址值,如图③。
  • 形参数组本质上就是接收实参地址的指针变量,它本身是有地址的,它所指向的空间内存放的是实参传来的地址。

【另】引用共享内存,数据互相可以修改;虽然数组形实参不共享单元,但是可以通过形参改变实参(因为本质是通过指针修改) 

运行到光标处来监视形参和实参的变化如图 ↓

//题目:求每一行元素之和
#include
using namespace std;

void rowsum(int a[][4], int nrow)//计算二维数组每行元素的值的和——形参数组和实参数组首地址重合
{
	for (int i = 0; i < nrow; i++)
	{
		for (int j = 1; j < 4; j++)
			a[i][0] += a[i][j];
	}
}

int main()
{
	int table[3][4]={ 1,2,3,4,2,3,4,5,3,4,5,6 };
	for (int i = 0; i < 3; i++)
	{
		for (int j = 0;j < 4; j++)
		{
			cout << table[i][j] << " ";
		}
		cout << endl;
	}
	rowsum(table, 3);//利用数组名作为函数的参数进行函数间数据传递与共享时传递的时首地址
	for (int i = 0; i < 3; i++)
	{
		cout << "sum of the row " << i << " is " << table[i][0] << endl;
	}
	return 0;
}
二.指针类型的注意事项

1.指向常量的指针 

  • 声明指向常量的指针,不能通过指针改变所指对象的值,但是指针本身可以改变,可以指向另外的对象;
  • 使用指向常量的指针,可以保证指针所指的常量不被意外改变。

2.指针类型的常量 

  • 指针本身的值不能改变,指针指向的内容可变 

 3.void类型的指针

 一般情况下,指针的值只能赋给相同类型的指针,但void类型的指针可以存储任何类型的对象地址,经过使用类型显式转换,通过void类型的指针可以访问任何类型的数据。

 


 更新于6_6

更新于6_8

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/957985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号