PDA

View Full Version : [Q] Con trỏ trong C++ thường được ứng dụng vào việc gì?



Eddy
06-12-2002, 18:29
Các chú chỉ cho cháu con trỏ trong C++ được sử dụng trong những trường hợp nào, và sách bài tập nào nói về con trỏ hay nhất?
Cám ơn nhiều!

danceswithwolves
06-12-2002, 21:32
để sử dụng vùng nhớ heap/free store, để thực thi tính polymorphism của objectz, để làm đủ thứ chuyện từ... hợp pháp đến bất hợp pháp trên bộ nhớ. Vân vân và vân vân.

Eddy
07-12-2002, 08:50
Con trỏ và tham chiếu khác nhau chỗ nào?Lúc nào nên dùng con trỏ hay dùng tham chiếu

dragon43
07-12-2002, 21:38
Trước hết bạn phải phân biệt được tham biến và tham trị trong chương trình con...Tham chiếu trong C/C++ chính là tham biến
Còn ngược lại là tham trị.

Tham chiếu có nghĩa là bạn muốn thao tác trực tiếp trên vùng nhớ đó.Nó chỉ có ý nghĩa khi bạn dùng làm đối số cho chương trình con(giống kiểu Var của pascal) ví dụ______

a=1;
ham1(int &a)
{
a=2;
}
ham1(a);
ra ngoài hàm có kết quả a=2(nếu mà không có & thì a vẫn =1)

Tuy nhiên bạn có thể dùng con trỏ để chỉ đến một vùng nhớ và nhờ con trỏ này để thao tác trực tiếp trên vùng nhớ đó
Và bây giờ nó thực hiện chức năng của biến tham chiếu
ví dụ

ham2(int *p)
{
*p=2;
}
a=1;
ham2(a);
(kết quả a=2)

hêhê!!!!!!!

quangvu
09-12-2002, 14:28
Hic ,trong VC thì đa số dùng com trỏ .Dù có cần hay không (kinh khủng)

duong_anh_duong
09-12-2002, 20:20
qua tới môn cấu trúc dữ liệu, con trỏ còn khủng khiếp hơn nữa kìa bạn ơi. ráng chịu đi

N1N
11-12-2002, 12:55
Eddy,

Bạn vào trong http://www.diendantinhoc.net . Trong đó có bài viết về pointer and linear link list too .

khôngtên
11-12-2002, 19:05
Con trỏ không quá phức tạp lắm đâu ! Chỉ cần nắm rõ bản chất mà cũng chẳng phải cần nắm tõ làm chi vì thật sự nó chỉ là địa chỉ của biến hay của bất kì một cấu trúc dữ liệu nào... Cái kho là áp dụng nó vào giải các bài toán yêu cầu phải dùng đến nó còn không nếu không sẽ rất khó khăn với một cấu trúc dữ liệu khác ! Vì vậy tôi khuyên bác nên tìm các sách về cấu trúc dữ liệu mà đọc tôi vì đa phần đếu có nói về cách sử dụng con trỏ để mô tả một cấu trúc dữ liệu nào đó chẳng hạn như danh sách liên kết, bảng băm....

cobecuoi
18-12-2002, 16:06
nhưng mừ sách chi mới duoc ah...
cần tên sách dể muh mua.. khong thì ra ngoài.. .chắc cobe cận them vài diop nữa vì biềt là tìm sách về pointer mà cái titlle thì... hic... có biết ???......

dragon43
18-12-2002, 19:20
Con trỏ có gì khó đâu nhỉ,nó cũng chỉ là một kiểu bình thường thôi mà!!!!!
Không cần con trỏ vẫn được mà,ví dụ hầu hết các ngôn ngữ lập trình bây giờ không dùng con trỏ nữa,như là VB,Java,C#...
Có gì về con trỏ cứ post lên chúng ta cùng thảo luận...

viettre
04-04-2003, 01:19
Bạn cần sách về con trỏ ư. Thử xem quyển "Cấu trúc dữ liệu và giải thuật" của thầy Đỗ Xuân Lôi xem

Huycuongpc
05-04-2003, 15:35
Contro trong C++ la gi thi em xem trong sch hoc C++trong 21ngay thi se ro thoi ma con trỏ trong C++ la loại công cụ rất tốt trong lập trình C++, nó rất tiện ích nhưng nó cũng rất nguy hiểm khi ta sử dụng nó nếu không đúng

Huycuongpc
05-04-2003, 15:45
Contro trong C++ la gi thi bạn xem trong sch hoc C++trong 21 ngày hoặc trong cuốn C++ dành cho sinh viên của thầy Tống ĐÌnh Quỳ bạn sẽ hiểu rõ hơn thi se ro thoi ma con trỏ trong C++ la loại công cụ rất tốt trong lập trình C++, nó rất tiện ích nhưng nó cũng rất nguy hiểm khi ta sử dụng nó nếu không đúng tuy nhiên nếu như học tới C# thì bạn sẽ thấy những vấn đề phức tạp hơn nhiều chúc bạn thành công

thanh_dn
13-04-2003, 08:35
Trong C hầu hết dùng con trỏ. C++ dùng tham chiếu nhiều hơn, hiện nay có xu thế dùng tham chiếu càng nhiều càng tốt vì cú pháp của nó an toàn hơn. Về bản chất contror đã bao gồm tham chiếu. Hiện nay chủ yếu dùng tham chiếu để truyền tham biến cho hàm. chứ rất ít khi dùng con trỏ.

minhhai
13-04-2003, 21:57
Ban nên tìm quyển sách Tin học 2 (của Đặng Thành Tín) và quyển ngôn ngữ lập trình (của Cao Hoàng Trụ),có bán ở quầy sách của ĐHBachKhoa TPHCM.Sách viết rất dễ hiểu (Tin học 2) ở chương con trỏ bạn vừa đọc sách vừa làm các bài tập dần dần thì con trỏ chắc không còn làm bạn chán ăn mất ngủ nưã đâu .

Thân chào.......!

thuythitruong
20-11-2011, 15:29
#include<iostream.h>
#include<string.h>

//khai bao ham
void daoxau(char *p);
//chuong trinh chinh
int main()
{
int n,thuong,du;
char s[17]="";

cout<<"nhap vao mot so nguyen duong: ";cin>>n;

thuong=n;
while(thuong)
{
du=thuong%2;
thuong/=2;
if(du) strcat(s,"1");else strcat(s,"0");
}
//Dao xau
daoxau(s);

cout<<"so nhi phan cua so nguyen "<<n<<" la "<<s;


cout<<endl;
return 0;
}
//dinh nghia ham
void daoxau(char *p)
{
int n=strlen(p);
int i;
char tg;

for(i=0;i<n/2;i++)
{
tg=p[i];p[i]=p[n-i-1];p[n-i-1]=tg;
}
}
//bạn dragon43 ơi bạn có thể chỉ cho t làm sao mà bắt buộc phải dùng con trỏ ở hàm daoxau() không

tuthan_blaococ
20-11-2011, 22:25
Thật là mệt mỏi.Học khó thiệt

megaownage
20-11-2011, 23:00
Mảng và xâu được truyền vào hàm bằng trị con trỏ chứa địa chỉ của phần tử đầu tiên.
Để ý lúc gọi hàm, người ta truyền biến trị s. Trị này chính là con trỏ chỉ vào s[0]

nói cách khác
daoxau(s);

daoxau(&s[0]);
In hệt nhau

@tuthan_blaococ: sì bam vừa vừa thôi cha nội/mụ nội.