Pointers are an extremely powerful programming tool. They can make som dịch - Pointers are an extremely powerful programming tool. They can make som Việt làm thế nào để nói

Pointers are an extremely powerful

Pointers are an extremely powerful programming tool. They can make some things much easier, help improve your program's efficiency, and even allow you to handle unlimited amounts of data. For example, using pointers is one way to have a function modify a variable passed to it. It is also possible to use pointers to dynamically allocate memory, which means that you can write programs that can handle nearly unlimited amounts of data on the fly--you don't need to know, when you write the program, how much memory you need. Wow, that's kind of cool. Actually, it's very cool, as we'll see in some of the next tutorials. For now, let's just get a basic handle on what pointers are and how you use them.



What are pointers? Why should you care?

Pointers are aptly name: they "point" to locations in memory. Think of a row of safety deposit boxes of various sizes at a local bank. Each safety deposit box will have a number associated with it so that you can quickly look it up. These numbers are like the memory addresses of variables. A pointer in the world of safety deposit box would simply be anything that stored the number of another safety deposit box. Perhaps you have a rich uncle who stored valuables in his safety deposit box, but decided to put the real location in another, smaller, safety deposit box that only stored a card with the number of the large box with the real jewelry. The safety deposit box with the card would be storing the location of another box; it would be equivalent to a pointer. In the computer, pointers are just variables that store memory addresses, usually the addresses of other variables.

The cool thing is that once you can talk about the address of a variable, you'll then be able to go to that address and retrieve the data stored in it. If you happen to have a huge piece of data that you want to pass into a function, it's a lot easier to pass its location to the function than to copy every element of the data! Moreover, if you need more memory for your program, you can request more memory from the system--how do you get "back" that memory? The system tells you where it is located in memory; that is to say, you get a memory address back. And you need pointers to store the memory address.

A note about terms: the word pointer can refer either to a memory address itself, or to a variable that stores a memory address. Usually, the distinction isn't really that important: if you pass a pointer variable into a function, you're passing the value stored in the pointer--the memory address. When I want to talk about a memory address, I'll refer to it as a memory address; when I want a variable that stores a memory address, I'll call it a pointer. When a variable stores the address of another variable, I'll say that it is "pointing to" that variable.
C Pointer Syntax

Pointers require a bit of new syntax because when you have a pointer, you need the ability to both request the memory location it stores and the value stored at that memory location. Moreover, since pointers are somewhat special, you need to tell the compiler when you declare your pointer variable that the variable is a pointer, and tell the compiler what type of memory it points to.

The pointer declaration looks like this:
*;
For example, you could declare a pointer that stores the address of an integer with the following syntax:
int *points_to_integer;
Notice the use of the *. This is the key to declaring a pointer; if you add it directly before the variable name, it will declare the variable to be a pointer. Minor gotcha: if you declare multiple pointers on the same line, you must precede each of them with an asterisk:
/* one pointer, one regular int */
int *pointer1, nonpointer1;

/* two pointers */
int *pointer1, *pointer2;
As I mentioned, there are two ways to use the pointer to access information: it is possible to have it give the actual address to another variable. To do so, simply use the name of the pointer without the *. However, to access the actual memory location and the value stored there, use the *. The technical name for this doing this is dereferencing the pointer; in essence, you're taking the reference to some memory address and following it, to retrieve the actual value. It can be tricky to keep track of when you should add the asterisk. Remember that the pointer's natural use is to store a memory address; so when you use the pointer:
call_to_function_expecting_memory_address(pointer);
then it evaluates to the address. You have to add something extra, the asterisk, in order to retrieve the value stored at the address. You'll probably do that an awful lot. Nevertheless, the pointer itself is supposed to store an address, so when you use the bare pointer, you get that address back.
Pointing to Something: Retrieving an Address

In order to have a pointer actually point to another variable it is necessary to have the memory address of that variable also. To get the memory address of a vari
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Con trỏ là một công cụ lập trình cực kỳ mạnh mẽ. Họ có thể làm cho một số những điều dễ dàng hơn, giúp nâng cao hiệu quả chương trình của bạn, và thậm chí cho phép bạn để xử lý không giới hạn số lượng dữ liệu. Ví dụ, bằng cách sử dụng con trỏ là một cách để có một chức năng thay đổi một biến được thông qua nó. Nó cũng có thể sử dụng con trỏ để tự động cấp phát bộ nhớ, có nghĩa là bạn có thể viết chương trình mà có thể xử lý gần như không giới hạn số lượng dữ liệu trên bay--bạn không cần phải biết, khi bạn viết các chương trình, bao nhiêu bộ nhớ bạn cần. Wow, đó là loại mát mẻ. Trên thực tế, nó là rất mát mẻ, như chúng ta sẽ thấy trong một số các hướng dẫn tiếp theo. Bây giờ, hãy chỉ nhận được một xử lý cơ bản về con trỏ là gì và làm thế nào bạn sử dụng chúng. Con trỏ là gì? Tại sao bạn nên chăm sóc?Con trỏ aptly tên: họ "chỉ" vị trí trong bộ nhớ. Hãy suy nghĩ của một hàng Két an toàn của các kích cỡ khác nhau tại một ngân hàng địa phương. Mỗi máy sẽ có một số liên kết với nó, do đó bạn có thể nhanh chóng tìm kiếm nó. Những con số này cũng giống như các địa chỉ bộ nhớ của các biến. Một con trỏ trong thế giới toàn bộ chỉ đơn giản là sẽ là bất cứ điều gì lưu trữ một số khác toàn bộ. Có lẽ bạn có một chú phong phú những người lưu trữ có giá trị trong Két an toàn của mình, nhưng đã quyết định đặt vị trí thực tế trong Két an toàn khác, nhỏ hơn, chỉ lưu trữ một thẻ với số lượng lớn hộp với các đồ trang sức thực sự. Két an toàn với thẻ nào lưu trữ vị trí của một hộp; nó sẽ là tương đương với một con trỏ. Trong máy tính, gợi ý là chỉ các biến lưu trữ địa chỉ bộ nhớ, thường là các địa chỉ của các biến khác. Điều thú vị là rằng một khi bạn có thể nói về địa chỉ của một biến, bạn sau đó có thể đến địa chỉ đó và lấy lại dữ liệu được lưu giữ trong nó. Nếu bạn xảy ra để có một mảnh lớn của dữ liệu mà bạn muốn vượt qua vào một chức năng, nó là rất dễ dàng hơn để vượt qua vị trí của nó với các chức năng hơn để sao chép mọi phần tử dữ liệu! Hơn nữa, nếu bạn cần thêm bộ nhớ cho chương trình của bạn, bạn có thể yêu cầu thêm bộ nhớ hệ thống - làm thế nào để bạn nhận được "trở lại" bộ nhớ điều đó? Hệ thống sẽ cho bạn biết nơi mà nó nằm trong bộ nhớ; đó là để nói, bạn nhận được một địa chỉ bộ nhớ lại. Và bạn cần gợi ý để lưu trữ các địa chỉ bộ nhớ. A note about terms: the word pointer can refer either to a memory address itself, or to a variable that stores a memory address. Usually, the distinction isn't really that important: if you pass a pointer variable into a function, you're passing the value stored in the pointer--the memory address. When I want to talk about a memory address, I'll refer to it as a memory address; when I want a variable that stores a memory address, I'll call it a pointer. When a variable stores the address of another variable, I'll say that it is "pointing to" that variable.C Pointer SyntaxPointers require a bit of new syntax because when you have a pointer, you need the ability to both request the memory location it stores and the value stored at that memory location. Moreover, since pointers are somewhat special, you need to tell the compiler when you declare your pointer variable that the variable is a pointer, and tell the compiler what type of memory it points to. The pointer declaration looks like this: *; For example, you could declare a pointer that stores the address of an integer with the following syntax:int *points_to_integer;Notice the use of the *. This is the key to declaring a pointer; if you add it directly before the variable name, it will declare the variable to be a pointer. Minor gotcha: if you declare multiple pointers on the same line, you must precede each of them with an asterisk:/* one pointer, one regular int */int *pointer1, nonpointer1;/* two pointers */int *pointer1, *pointer2;As I mentioned, there are two ways to use the pointer to access information: it is possible to have it give the actual address to another variable. To do so, simply use the name of the pointer without the *. However, to access the actual memory location and the value stored there, use the *. The technical name for this doing this is dereferencing the pointer; in essence, you're taking the reference to some memory address and following it, to retrieve the actual value. It can be tricky to keep track of when you should add the asterisk. Remember that the pointer's natural use is to store a memory address; so when you use the pointer:call_to_function_expecting_memory_address(pointer);then it evaluates to the address. You have to add something extra, the asterisk, in order to retrieve the value stored at the address. You'll probably do that an awful lot. Nevertheless, the pointer itself is supposed to store an address, so when you use the bare pointer, you get that address back.Pointing to Something: Retrieving an AddressIn order to have a pointer actually point to another variable it is necessary to have the memory address of that variable also. To get the memory address of a vari
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
Con trỏ là một công cụ lập trình cực kỳ mạnh mẽ. Họ có thể làm một số việc dễ dàng hơn, giúp cải thiện hiệu quả của chương trình của bạn, và thậm chí cho phép bạn xử lý một lượng không giới hạn của dữ liệu. Ví dụ, sử dụng con trỏ là một trong những cách để có một chức năng sửa đổi một biến được truyền cho nó. Nó cũng có thể sử dụng con trỏ để tự động phân bổ bộ nhớ, điều đó có nghĩa rằng bạn có thể viết chương trình có thể xử lý một lượng gần như không giới hạn của dữ liệu nhanh chóng - bạn không cần phải biết, khi bạn viết chương trình, bao nhiêu bộ nhớ bạn nhu cầu. Wow, đó là loại mát mẻ. Trên thực tế, nó rất mát mẻ, như chúng ta sẽ thấy trong một số các hướng dẫn tiếp theo. Để bây giờ, chúng ta hãy chỉ được một xử lý cơ bản về những gì con trỏ là gì và cách bạn sử dụng chúng. Con trỏ là gì? Tại sao bạn nên chăm sóc con trỏ là aptly tên: họ "điểm" đến các địa điểm trong bộ nhớ. Hãy suy nghĩ của một hàng, két an toàn của các kích cỡ khác nhau tại một ngân hàng địa phương. Mỗi hộp tiền gửi an toàn sẽ có một số liên kết với nó để bạn có thể nhanh chóng nhìn nó lên. Những con số này cũng giống như các địa chỉ bộ nhớ của các biến. Một con trỏ trong thế giới của két an toàn đơn giản sẽ là bất cứ điều gì mà lưu trữ các số khác két an toàn. Có lẽ bạn có một người chú giàu có được lưu trữ có giá trị trong két an toàn của mình, nhưng đã quyết định đặt vị trí thực tại khác, nhỏ hơn, két an toàn mà chỉ được lưu trữ một thẻ với số lượng của hộp lớn với các đồ trang sức thực sự. Hộp an toàn tiền gửi với các thẻ sẽ được lưu trữ vị trí của hộp khác; nó sẽ tương đương với một con trỏ. Trong máy tính, con trỏ chỉ là biến lưu trữ địa chỉ bộ nhớ, thường là địa chỉ của các biến khác. Điều thú vị là một khi bạn có thể nói về các địa chỉ của một biến, bạn sẽ sau đó có thể đi đến địa chỉ đó và lấy dữ liệu được lưu trữ trong đó. Nếu bạn xảy ra để có một mảnh lớn các dữ liệu mà bạn muốn vượt qua vào một chức năng, nó dễ dàng hơn rất nhiều để vượt qua vị trí của nó với chức năng hơn để sao chép tất cả các yếu tố của các dữ liệu! Hơn nữa, nếu bạn cần thêm bộ nhớ cho chương trình của bạn, bạn có thể yêu cầu thêm bộ nhớ từ hệ thống - làm thế nào để bạn nhận được "trở lại" rằng bộ nhớ? Hệ thống này sẽ cho bạn biết nó nằm ở đâu trong bộ nhớ; đó là để nói, bạn sẽ có được một địa chỉ bộ nhớ trở lại. Và bạn cần con trỏ để lưu trữ các địa chỉ bộ nhớ. Một lưu ý về các điều khoản: con trỏ từ có thể tham khảo hoặc đến một địa chỉ bộ nhớ chính nó, hoặc một biến lưu trữ một địa chỉ bộ nhớ. Thông thường, sự khác biệt là không thực sự quan trọng: nếu bạn vượt qua một biến con trỏ vào một chức năng, bạn đang đi qua các giá trị được lưu trong con trỏ - địa chỉ bộ nhớ. Khi tôi muốn nói về một địa chỉ bộ nhớ, tôi sẽ đề cập đến nó như là một địa chỉ bộ nhớ; khi tôi muốn có một biến lưu trữ một địa chỉ bộ nhớ, tôi sẽ gọi nó là một con trỏ. Khi một cửa hàng biến địa chỉ của một biến khác, tôi sẽ nói rằng đó là "chỉ để" biến đó. C Pointer Cú pháp Pointers đòi hỏi một chút về cú pháp mới bởi vì khi bạn có một con trỏ, bạn cần có khả năng cả hai yêu cầu bộ nhớ vị trí mà nó lưu trữ và giá trị được lưu ở vị trí bộ nhớ. Hơn nữa, kể từ khi con trỏ có phần đặc biệt, bạn cần phải cho các trình biên dịch khi bạn khai báo biến con trỏ của bạn là biến là một con trỏ, và nói với các trình biên dịch những gì loại bộ nhớ nó trỏ tới. Việc khai báo con trỏ trông như thế này:















*;
Ví dụ, bạn có thể khai báo một con trỏ để lưu địa chỉ của một số nguyên với cú pháp sau:
int * points_to_integer;
Chú ý việc sử dụng *. Đây là chìa khóa để khai báo một con trỏ; nếu bạn thêm nó trực tiếp trước tên biến, nó sẽ khai báo biến là một con trỏ. Ghi chú nhỏ: nếu bạn khai báo nhiều con trỏ trên cùng một dòng, bạn phải đặt trước mỗi trong số họ với một dấu sao:
/ * một con trỏ, một int thường * /
int * pointer1, nonpointer1; / * hai con trỏ * / int * pointer1, * pointer2; Như tôi đã đề cập, có hai cách để sử dụng con trỏ để truy cập thông tin: có thể có nó cung cấp cho các địa chỉ thực tế để biến khác. Để làm như vậy, chỉ đơn giản là sử dụng tên của con trỏ mà không *. Tuy nhiên, để truy cập vào bộ nhớ vị trí thực tế và giá trị được lưu trữ ở đó, sử dụng *. Tên kỹ thuật này làm việc này là dereferencing con trỏ; trong bản chất, bạn đang dùng các tham chiếu đến một số địa chỉ bộ nhớ và sau đó, để lấy các giá trị thực tế. Nó có thể được khó khăn để theo dõi khi nào bạn nên thêm dấu hoa thị. Hãy nhớ rằng sử dụng tự nhiên của con trỏ là để lưu trữ một địa chỉ bộ nhớ; vì vậy khi bạn sử dụng con trỏ: call_to_function_expecting_memory_address (con trỏ); sau đó nó để đánh giá địa chỉ. Bạn phải thêm cái gì thêm, dấu hoa thị, để lấy các giá trị được lưu trữ tại địa chỉ. Bạn có lẽ sẽ làm điều đó một awful. Tuy nhiên, con trỏ tự nó là vụ phải lưu giữ một địa chỉ, vì vậy khi bạn sử dụng con trỏ để trần, bạn sẽ có được địa chỉ đó lại. Chỉ vào cái gì đó: Lấy một Địa chỉ Để có một con trỏ chỉ đến một biến khác đó là cần thiết để có địa chỉ bộ nhớ của biến đó cũng có. Để có được các địa chỉ bộ nhớ của một vari








đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2025 I Love Translation. All reserved.

E-mail: