指针
变量的地址指向变量所在的存储空间,地址是指向该变量的指针
创建
int *ptr;
赋值
int var = 10;
int *ptr = &var; // 将var的地址赋值给ptr
使用
int value = *ptr; // 通过ptr访问var的值
指针与一维数组
因为数组名为数组变量第一个数值(如:a[0])的内存地址
所以将其赋给指针可以调用其数组值
如
p=&a 或 p=&a[0]
#include <stdio.h>
int main() {
int arr[5] = {1, 2, 3, 4, 5}; // 初始化数组
int *ptr = arr; // ptr指向数组的第一个元素
for(int i = 0; i < 5; i++) {
printf("%d ", *(ptr + i)); // 使用指针访问数组元素
}
printf("\n");
return 0; // 返回0表示程序正常结束
}
指针与二维数组
如
#include <stdio.h>
#define M 3 // 假设二维数组的行数为3
#define N 4 // 假设二维数组的列数为4
int main() {
int arr[M][N] = { // 初始化二维数组
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int (*ptr)[N] = arr; // ptr指向arr的第一行
for (int i = 0; i < M; ++i) {
for (int j = 0; j < N; ++j) {
printf("%d ", (*ptr)[j]); // 使用指针访问数组元素
}
printf("\n");
ptr++; // 移动到下一行
}
return 0; // 程序正常结束
}