自学内容网 自学内容网

温习指针知识

什么是指针

指针是一个变量,它存储另一个变量的内存地址,而不是直接存储数据值。通过指针,可以直接访问和修改存储在该地址上的数据。

声明指针

指针的声明使用*符号。

// 在定义时或定义后立即初始化
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

动态内存分配

使用标准库函数mallocfree可以动态分配和释放内存。

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)!