目录
一.数组作为函数参数(形参重新开辟内存单元接收实参地址)
一.数组作为函数参数
- 数组元素和数组名都可以作为函数的参数以实现函数之间数据的共享和传递;
- 使用数组名传递数据时,传递的是地址;
- 形参数组和实参数组的首地址重合:形参数组重新开辟内存单元来接收实参数组的地址值,如图③。
- 形参数组本质上就是接收实参地址的指针变量,它本身是有地址的,它所指向的空间内存放的是实参传来的地址。
【另】引用共享内存,数据互相可以修改;虽然数组形实参不共享单元,但是可以通过形参改变实参(因为本质是通过指针修改)
运行到光标处来监视形参和实参的变化如图 ↓
//题目:求每一行元素之和 #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



