cuốn sách gpt4 ai đã làm

Cần trợ giúp để hiểu con trỏ và nhiều nội dung C khác

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 05:03:20 29 4
mua khóa gpt4 Nike

#include 
#include
#include

cấu trúc typedef dict_pair {
phím void *;
void *giá trị;
struct dict_pair *đuôi;
} lệnh;


dict* NewDictionary(void) {
dict *dictionary = malloc(sizeof(dict)); // hoặc chúng ta có thể malloc(sizeof(struct dict_pair))
từ điển->đuôi = NULL;
}

// hoạt động chính tả
void put(dict *dictionary, void *key, void *value) {
//cặp mới
dict *new_pair = malloc(sizeof(dict));
new_pair->key = key;
new_pair->value = giá trị;
// xâu chuỗi
new_pair->tail = NULL;
dict *last_node = từ điển;
while (last_node->tail != NULL) {
Last_node = Last_node->tail;
}

Last_node->tail = new_pair;
}

void* get(dict *dictionary, void *key) {
dict *current_dict = từ điển;
trong khi (1) {
if (current_dict->key == key) {
trả về giá trị current_dict->value;
}
khác nếu (từ điển->đuôi != NULL) {
current_dict = current_dict->tail;
} khác phá vỡ;
}
trả về NULL;
}
//kết thúc thao tác

int chính(void) {
dict *dictionary = NewDictionary();
put(dictionary,(void *) "buffer1",(void *) "Fake1");
put(dictionary,(void *) "buffer2",(void *) "Fake2");
put(dictionary,(void *) "key",(void *) "Đây là giá trị.");
char *result = (char *) get(dictionary, (void *) "key");
printf("%s\n",kết quả);
}

Vì vậy, tôi đã viết được đoạn mã trên để triển khai một từ điển. Mặc dù tôi có thể viết mã và biên dịch nó và làm cho nó hoạt động như mong đợi nhưng có một số điều tôi chưa hiểu rõ. Chủ yếu về con trỏ:

dict *current_dict = từ điển;

Hãy lấy dòng này làm ví dụ. Chúng ta đang khai báo một biến chứa kiểu dict. current_dict là một con trỏ phải không? Từ điển là một con trỏ. Tuy nhiên, *current_dict không phải là con trỏ, làm cách nào để gán nó cho con trỏ?

Hay phải gõ rõ ràng mới báo lỗi?

dict (*current_dict) = từ điển;

Nếu vậy, điều này có nghĩa là dòng trên có nghĩa là chúng ta đang khai báo một biến dict có kiểu current_dict là một con trỏ. Tuyên bố này không phải

(dict*) current_dict = từ điển;

Như bạn có thể thấy, khoảng cách và vị trí làm tôi bối rối.

Có ai có thể giúp giải thích sự khác biệt giữa * định vị không?

Cảm ơn!

câu trả lời hay nhất

虽然 dict * từ điểndict* từ điển Có cùng ý nghĩa trong C, nhưng tôi thích cái trước hơn.

Tôi thích nghĩ về các khai báo con trỏ theo các thuật ngữ sau:

int x; // x là một int
int *y; // *y là một int
int **z; //**z là một int

nếu bạn vẫn còn nhớ *y Đúng y thì đối tượng được chỉ tới y Phải là một con trỏ tới - một số nguyên. như nhau,z Phải là một con trỏ tới int.

Về c - cần trợ giúp để hiểu con trỏ và nhiều nội dung C khác, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/1759588/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress