01/10/2018, 01:13

[Thắc mắc] Định dạng hàm theo cấu trúc?

Mình không hiểu code đang làm gì, mong mọi người giải đáp, mình cảm ơn

``typedef struct {
int number;
} Test;

Test Test_New(Test t,int number)* {
t.number = number;
return &t;
} ``

Nguyen Ca viết 03:19 ngày 01/10/2018

Tạo 1 struct có tên là Test

Test* Test_New(Test t,int number)

Function trả về con trỏ có kiểu là Test

Tris viết 03:13 ngày 01/10/2018

Function trả về con trỏ có kiểu là Test

Sao khái niệm này mình không thấy ở trong ebook nào cả ^^ ?

Phạm Tiến Thành Đạt viết 03:17 ngày 01/10/2018

Chắc bạn tìm chưa hết thôi.

Nguyen Ca viết 03:23 ngày 01/10/2018

Tìm xem, chắc chắn có
https://www.tutorialspoint.com/cprogramming/c_return_pointer_from_functions.htm

Tris viết 03:17 ngày 01/10/2018

Ý mình là mình k tìm thấy khái niệm hàm trả về biến có kiểu là cấu trúc. Nếu trả về rồi thì biến đó có đặc điểm gì? Nó có giống c++ không?

Nguyen Ca viết 03:13 ngày 01/10/2018

Chú đinh nghĩ thêm 1 kiểu thì chú sử dụng thôi, chứ có gi đâu.
Thay vì dùng kiểu có sẳn, thì c cho phép định nghĩa thêm kiểu mới. c++ thì chắc cũng có.

Pham Van Hai viết 03:26 ngày 01/10/2018

struct về cơ bản cũng là một kiểu dữ liệu (giống int, …) nhưng do người dùng định nghĩa nên về mặt ý nghĩa không khác gì với các kiểu dữ liệu khác:

Test* Test_New(Test t,int number)

Hàm sẽ trả về con trỏ, trỏ tới vùng nhớ chứa kiểu dữ liệu struct Test.

Tris viết 03:13 ngày 01/10/2018

Đã thông, cảm ơn các bác nhiều

rogp10 viết 03:15 ngày 01/10/2018

Cái này ko ổn vì t là biến local, lấy pointer về cũng đâu có xài được.

Nói chung là nó ko ảnh hưởng gì đến t cũ (tham trị là vậy).

Tris viết 03:24 ngày 01/10/2018

Em chỉ làm ví dụ cho cái trả kiểu Test về thôi , chứ code này có bug

Bài liên quan
0