01/10/2018, 15:24

Khai báo biến động trên cùng 1 dòng

Mình muốn khai báo tất cả biến động trên cùng 1 dòng nhưng không biết làm thế nào?

VD: thay vì

int *a = new int;
int *b = new int;
int *c = new int;

có cách nào không ạ?

Mình thử

int *a,*b,*c=new int; 

nhưng không được.

Văn Dương viết 17:28 ngày 01/10/2018

Thử thế này xem có được không :

int* a= new int, b= new int, c=new int;
Tao Không Ngu. viết 17:25 ngày 01/10/2018

Hi Tran Nhu Thanh
Nhưng để làm gì ?

Le Ly Vinh viết 17:40 ngày 01/10/2018

Nếu là

int* a= new int, *b= new int, *c=new int;

vậy thì được bạn, nhưng mình thấy vẫn còn dài.

Le Ly Vinh viết 17:24 ngày 01/10/2018

Để gõ cho ngắn hơn thôi hì hì

Le Ly Vinh viết 17:30 ngày 01/10/2018

Thiếu * ở trước b, c rồi.

Tao Không Ngu. viết 17:33 ngày 01/10/2018

Hi Tran Nhu Thanh.
Theo mình thì việc đó chẳng có ý nghĩa gì cả trong lập trình có quy tắc đặt tên biến tên hàm và comment code bạn nên tìm hiểu qua nếu có ý định lập trình một cách nghiêm túc.

Florastamine viết 17:37 ngày 01/10/2018
#define nay_thi_khai_bao(x) int *x = new int;
...
nay_thi_khai_bao(a);
nay_thi_khai_bao(b);
nay_thi_khai_bao(c);
...
#undef nay_thi_khai_bao
...

*a = 1; *b = 2; *c = 3;
...

Cách này không được khuyến khích, viết mấy chương trình nhỏ nhỏ cho vui thì được.

明玉 viết 17:40 ngày 01/10/2018

Nếu bạn muốn vậy thật (viết ngắn như ví dụ của bạn) thì đây có thế gọi là nhược điểm của C++ (và hầu hết các ngôn ngữ lập trình bây giờ) rồi, đơn giản là “ngữ pháp” này không thuộc chuẩn C++, và tương lai có vẻ sẽ không có “ngữ pháp” này cho bạn dùng, vì nó đặc biệt quá, dễ gây hiểu lầm khi đọc code.
Thay vào đó bạn có thể viết 1 function nào đó rồi truyền cả 3 con trỏ đó vào, code đâu đó thì dài nhưng chỗ định nghĩa con trỏ sẽ gọn:

function alloc(int**a, int**b, int**c)
{
   *a = new int; *b = new int; *c = new int;
} // ở đây thì dài
int main()
{
   int *a, *b, *c;
   alloc(&a, &b, &c); // nhưng ở đây thì ngắn
}

Nếu bạn muốn truyền bất kì số hạng thì bạn đọc thêm Variadic arguments.

HK boy viết 17:29 ngày 01/10/2018

khai báo tất cả biến động trên cùng 1 dòng

Dùng mảng nhé. Ngắn gọn, đỡ phải nghĩ.

Bài liên quan
0