指针
1.指针
指针是编程语言中的一个对象,利用地址,它的值直接指向存在电脑中的另一个地方的值,可以通过地址查找所需的变量单元。
简而言之,指针变量是变量,指针是地址。
2.二级指针
用来存放一级指针变量地址的变量为二级指针。
数组
1.数组
数组是一组具有相同类型元素的集合。
2.指针数组
指针数组是数组,数组元素为指针变量。
3.数组指针
数组指针为指针,用来存放数组地址。
数组指针相关练习
#include <stdio.h>
#include <windows.h>
void print_arr1(int arr[3][5], int row, int col)
{
for (int i = 0; i < row; i++)
{
for(int j = 0; j < col; j++)
{
printf("%d", arr[i][j]);
}
printf("\n");
}
}
void print_arr2(int (*arr)[5], int row, int col)
{
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d", arr[i][j]);
}
printf("\n");
}
}
int main()
{
int arr[3][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
print_arr1(arr, 3, 5);
print_arr2(arr, 3, 5);
system("pause");
return 0;
}
传参问题
1.一级指针传参
#include <stdio.h>
#include <windows.h>
void print(int *p, int sz)
{
for (int i = 0; i < sz; i++)
{
printf("%d\n", *(p+i));
}
}
int main()
{
int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9};
int *p = arr;
int sz = sizeof(arr) / sizeof(arr[0]);
print(p, sz);
system("pause");
return 0;
}
2.二级指针传参
int main()
{
int n = 10;
int *p = &n;
int **pp=&p;
test(pp);
test(&p);
system("pause");
return 0;
}