Post

Struct

Lý thuyết (chưa hoàn thiện)

Câu hỏi: Trường hợp nào dùng . or -> cho hợp lí ?

  • Dấu . khi dùng struct trực tiếp để lấy phần tử.
  • Dấu -> khi con trỏ trỏ tới struct, và lấy các phần tử của struct đó.

Câu hỏi: Địa chỉ của struct có giống với địa chỉ của phần tử đầu tiên của struct đó không ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// test.c

#include <stdio.h>
#include <stdint.h>

struct SRAM {
    uint8_t stack;
    uint8_t heap;
    uint8_t _data;
    uint8_t _bss;
};

int main() {
    struct SRAM SRAM_A;
    struct SRAM *pSRAM = &SRAM_A; // Pointer to SRAM

    printf("Address of SRAM_A: %p\n", (void*)pSRAM);
    printf("Address of first element (stack) in SRAM_A: %p\n", (void*)&(SRAM_A.stack));

    return 0;
}

OUTPUT:

1
2
Address of SRAM_A: 0x7ffe8d3c7fec
Address of first element (stack) in SRAM_A: 0x7ffe8d3c7fec

Nhìn vào kết quả trên, ta có kết luận là .

This post is licensed under CC BY 4.0 by the author.