在C语言中,指针是一种非常强大的特性,允许你直接访问和操作内存地址。以下是有关C语言指针的基本知识:

1. 声明指针:
#include <stdio.h>

int main() {
    int number = 10;
    int *ptr;  // 声明整型指针

    ptr = &number;  // 指针存储变量的地址

    printf("Value of number: %d\n", number);
    printf("Address of number: %p\n", &number);
    printf("Value stored in ptr: %p\n", ptr);  // 存储的是变量的地址
    printf("Value at the address stored in ptr: %d\n", *ptr);  // 通过指针访问变量的值

    return 0;
}

2. 指针和数组:
#include <stdio.h>

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int *ptr = numbers;  // 指向数组的第一个元素的指针

    for (int i = 0; i < 5; i++) {
        printf("Element %d: %d\n", i, *(ptr + i));  // 通过指针访问数组元素
    }

    return 0;
}

3. 指针和函数:
#include <stdio.h>

// 函数接受指针作为参数
void addTen(int *num) {
    *num += 10;
}

int main() {
    int value = 5;

    printf("Original value: %d\n", value);

    // 将变量的地址传递给函数
    addTen(&value);

    printf("Value after adding ten: %d\n", value);

    return 0;
}

4. 动态内存分配和释放:
#include <stdio.h>
#include <stdlib.h>

int main() {
    int *dynamicArray;

    // 分配内存
    dynamicArray = (int *)malloc(5 * sizeof(int));

    // 初始化数组元素
    for (int i = 0; i < 5; i++) {
        dynamicArray[i] = i + 1;
    }

    // 使用循环遍历数组并打印元素
    for (int i = 0; i < 5; i++) {
        printf("%d ", dynamicArray[i]);
    }

    // 释放动态分配的内存
    free(dynamicArray);

    return 0;
}

指针是C语言中的一个强大概念,但也需要小心使用,以防止悬空指针和内存泄漏等问题。


转载请注明出处:http://www.zyzy.cn/article/detail/3182/C语言