阿稳自修室P46:函数与数组

程序7.5 arrfun1.cpp

如同使用数组名那样使用指针,程序将数组初始化为某些值,并使用sum_arr()函数计算总数,注意sum_arr()函数使用arr时,就像是使用数组名一样。

#include<iostream>
const int ArSize = 8;
int sum_arr(int* arr, int n); 
int main()
{
	using namespace std;
	int cookies[ArSize] = { 1,2,4,8,16,32,64,128 };
	int sum = sum_arr(cookies, ArSize);
	cout << "Total cookies eaten: " << sum << "\n";
	return 0;
}
int sum_arr(int* arr, int n)
//int sum_arr(int arr[], int n)另一种写法
{
	int total = 0;
	for (int i = 0; i < n; i++)
		total = total + arr[i];
	return total;
}

函数如何使用指针来处理数组

两个恒等式:arr[i] == *(arr + i);&arr[i] == arr+i;

	cout << sizeof(cookies) << endl; //数组长度,int有4个字节,共有8个为32
	cout << sizeof(&cookies) << endl; //地址的长度
	cout << cookies << endl; //数组第一个元素4个字节的地址
	cout << &cookies << endl; //整个数组内存块32个字节的地址,虽然长度不一样,但是地址都是一样的

将数组作为参数意味着什么

程序清单7.5中,并没有将数组的内容传递给函数,而是将数组的位置(地址)、包含元素的种类(类型)以及元素的数目(n变量)提交给函数。

程序清单7.6 arrfun2.cpp

cookies与arr的值相同,演示了指针概念如何使sum_arr函数比以前更通用,该程序使用限定符std::而不是编译指令using来提供对cout与endl的访问权。

#include<iostream>
const int ArSize = 8;
int sum_arr(int* arr, int n);
int main()
{
	int cookies[ArSize] = { 1,2,4,8,16,32,64,128 };
	std::cout << cookies << " = array address, ";
	std::cout << sizeof(cookies) << " size of cookies.\n";
	int sum = sum_arr(cookies, ArSize);
	std::cout << "Total cookies eaten: " << sum << "\n";
	sum = sum_arr(cookies, 3);
	std::cout << "Total cookies eaten: " << sum << "\n";
	sum = sum_arr(cookies+4, 4);
	std::cout << "Total cookies eaten: " << sum << "\n";
	return 0;
}
int sum_arr(int* arr, int n)
{
	int total = 0;
	std::cout << arr << " = arr, ";
	std::cout << sizeof(arr) << " = sizeof(arr)\n"; //arr是一个指针,指针变量的长度,指针内部存储的是地址,64/8=8
	for (int i = 0; i < n; i++)
		total = total + arr[i];
	return total;
}
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇