温习指针知识
什么是指针
指针是一个变量,它存储另一个变量的内存地址,而不是直接存储数据值。通过指针,可以直接访问和修改存储在该地址上的数据。
声明指针
指针的声明使用*
符号。
// 在定义时或定义后立即初始化
int *p; // 声明一个指向整数的指针p
获取变量的地址
使用取地址运算符&
可以获取一个变量的地址。
int a = 10;
int *p = &a; // p保存变量a的地址
访问指针指向的值
使用解引用运算符*
可以访问指针指向的值。
int a = 10;
int *p = &a;
printf("a = %d\n", *p); // 输出a的值,即10
修改指针指向的值
通过指针,可以修改其指向的值。
int a = 10;
int *p = &a;
*p = 20; // 修改a的值为20
printf("a = %d\n", a); // 输出20
指针和数组
在C语言中,数组名本身就是一个指向数组第一个元素的指针。
int arr[] = {1, 2, 3, 4, 5};
int *p = arr; // p指向数组arr的第一个元素
printf("arr[0] = %d\n", *p); // 输出1
指针的指针
指针也可以指向另一个指针。
int a = 10;
int *p = &a;
int **pp = &p; // pp是一个指向p的指针
printf("a = %d\n", **pp); // 输出10
动态内存分配
使用标准库函数malloc
和free
可以动态分配和释放内存。
int *p = (int *)malloc(sizeof(int) * 5); // 动态分配内存用于存储5个整数
if (p != NULL) {
for (int i = 0; i < 5; ++i) {
p[i] = i * 10;
}
for (int i = 0; i < 5; ++i) {
printf("%d ", p[i]); // 输出0 10 20 30 40
}
free(p); // 释放内存
}
原文地址:https://blog.csdn.net/m0_72030584/article/details/145145789
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!