溫馨提示×

C語言指針操作指針與聯(lián)合體用法

小樊
85
2024-10-31 11:19:57
欄目: 編程語言

在C語言中,指針操作指針和聯(lián)合體(union)是兩個不同的概念,但它們都可以用來處理復雜的數(shù)據(jù)結構

  1. 指針操作指針:

指針操作指針是指使用一個指針來指向另一個指針,這樣可以實現(xiàn)多級指針,從而訪問更復雜的數(shù)據(jù)結構。以下是一個簡單的例子:

#include <stdio.h>

int main() {
    int a = 10;
    int *p = &a; // p 是一個指向整數(shù)的指針
    int **pp = &p; // pp 是一個指向指針的指針

    printf("a = %d\n", a);
    printf("p = %p\n", p);
    printf("pp = %p\n", pp);

    *pp = &a; // 通過指針的指針修改 p 的值
    printf("p = %p\n", p);

    return 0;
}
  1. 聯(lián)合體(union):

聯(lián)合體是一種特殊的數(shù)據(jù)結構,它允許在相同的內存位置存儲不同的數(shù)據(jù)類型。聯(lián)合體的所有成員共享同一塊內存空間,因此它們的大小等于其最大成員的大小。以下是一個簡單的例子:

#include <stdio.h>

typedef union {
    int i;
    float f;
    char str[20];
} Data;

int main() {
    Data data;

    data.i = 10;
    printf("data.i = %d\n", data.i);

    data.f = 220.5;
    printf("data.f = %f\n", data.f);

    strcpy(data.str, "C Programming");
    printf("data.str = %s\n", data.str);

    return 0;
}

在這個例子中,我們定義了一個名為Data的聯(lián)合體,它包含一個整數(shù)、一個浮點數(shù)和一個字符數(shù)組。我們可以通過不同的成員訪問這個聯(lián)合體的值。

總結:

  • 指針操作指針涉及到使用一個指針來指向另一個指針,從而實現(xiàn)多級指針,訪問更復雜的數(shù)據(jù)結構。
  • 聯(lián)合體是一種特殊的數(shù)據(jù)結構,允許在相同的內存位置存儲不同的數(shù)據(jù)類型。聯(lián)合體的所有成員共享同一塊內存空間,因此它們的大小等于其最大成員的大小。

0