<< Chapter < Page Chapter >> Page >
Học xong chương này, sinh viên sẽ nắm được các vấn đề sau: + Khái niệm về kiểu dữ liệu “con trỏ”.+ Cách khai báo và cách sử dụng biến kiểu con trỏ. + Mối quan hệ giữa mảng và con trỏ.

Giới thiệu kiểu dữ liệu con trỏ

Các biến chúng ta đã biết và sử dụng trước đây đều là biến có kích thước và kiểu dữ liệu xác định. Người ta gọi các biến kiểu này là biến tĩnh. Khi khai báo biến tĩnh, một lượng ô nhớ cho các biến này sẽ được cấp phát mà không cần biết trong quá trình thực thi chương trình có sử dụng hết lượng ô nhớ này hay không. Mặt khác, các biến tĩnh dạng này sẽ tồn tại trong suốt thời gian thực thi chương trình dù có những biến mà chương trình chỉ sử dụng 1 lần rồi bỏ.

Một số hạn chế có thể gặp phải khi sử dụng các biến tĩnh:

  • Cấp phát ô nhớ dư, gây ra lãng phí ô nhớ.
  • Cấp phát ô nhớ thiếu, chương trình thực thi bị lỗi.

Để tránh những hạn chế trên, ngôn ngữ C cung cấp cho ta một loại biến đặc biệt gọi là biến động với các đặc điểm sau:

  • Chỉ phát sinh trong quá trình thực hiện chương trình chứ không phát sinh lúc bắt đầu chương trình.
  • Khi chạy chương trình, kích thước của biến, vùng nhớ và địa chỉ vùng nhớ được cấp phát cho biến có thể thay đổi.
  • Sau khi sử dụng xong có thể giải phóng để tiết kiệm chỗ trong bộ nhớ.

Tuy nhiên các biến động không có địa chỉ nhất định nên ta không thể truy cập đến chúng được. Vì thế, ngôn ngữ C lại cung cấp cho ta một loại biến đặc biệt nữa để khắc phục tình trạng này, đó là biến con trỏ (pointer) với các đặc điểm:

  • Biến con trỏ không chứa dữ liệu mà chỉ chứa địa chỉ của dữ liệu hay chứa địa chỉ của ô nhớ chứa dữ liệu.
  • Kích thước của biến con trỏ không phụ thuộc vào kiểu dữ liệu, luôn có kích thước cố định là 2 byte.

Khai báo và sử dụng biến con trỏ

Khai báo biến con trỏ

Cú pháp:<Kiểu>*<Tên con trỏ>

Ý nghĩa: Khai báo một biến có tên là Tên con trỏ dùng để chứa địa chỉ của các biến có kiểu Kiểu.

Ví dụ 1: Khai báo 2 biến a,b có kiểu int và 2 biến pa, pb là 2 biến con trỏ kiểu int.

int a, b, *pa, *pb;

Ví dụ 2: Khai báo biến f kiểu float và biến pf là con trỏ float

float f, *pf;

Ghi chú: Nếu chưa muốn khai báo kiểu dữ liệu mà con trỏ ptr đang chỉ đến, ta sử dụng:

void *ptr;

Sau đó, nếu ta muốn con trỏ ptr chỉ đến kiểu dữ liệu gì cũng được. Tác dụng của khai báo này là chỉ dành ra 2 bytes trong bộ nhớ để cấp phát cho biến con trỏ ptr.

Các thao tác trên con trỏ

Gán địa chỉ của biến cho biến con trỏ

Toán tử&dùng để định vị con trỏ đến địa chỉ của một biến đang làm việc.

Cú pháp:<Tên biến con trỏ>=&<Tên biến>

Giải thích: Ta gán địa chỉ của biến Tên biến cho con trỏ Tên biến con trỏ.

Ví dụ: Gán địa chỉ của biến a cho con trỏ pa, gán địa chỉ của biến b cho con trỏ pb.

pa=&a; pb=&b;

Lúc này, hình ảnh của các biến trong bộ nhớ được mô tả:

a b Bộ nhớ
pa pb 2 byte 2 byte

Lưu ý:

Khi gán địa chỉ của biến tĩnh cho con trỏ cần phải lưu ý kiểu dữ liệu của chúng. Ví dụ sau đây không đúng do không tương thích kiểu:

int Bien_Nguyen;

float *Con_Tro_Thuc;



Phép gán ở đây là sai vì Con_Tro_Thuc là một con trỏ kiểu float (nó chỉ có thể chứa được địa chỉ của biến kiểu float); trong khi đó, Bien_Nguyen có kiểu int.

Questions & Answers

what are the money value
Wisdom Reply
Nothing more than a purchase power, in other words, $100 now, must have the same value after 1 year.
what is Monopoly
Rebecca Reply
what is money
Lawal Reply
It can be define as a big transaction that can control any business for one place to another base.
money is recognisable note to accept both parties selling and buying
i don still understan
money is anything generally accepted as a medium of exchange
Money is anything generally accepted as a medium of exchange and for the settlement of goods and services .
hi good ppl, pls help out
discuss human and natural resources as develop strategies ro improving living condition of citizens in developing countries.
I don't understand the question.
it's a form of currency used for 2 or more individuals or parties in order to reach their amicable personal or business attainment. one must understand that money itself can manifest in multiple fashions for which the individuals or parties adheres.
are u trying to say we shld discuss ways in which human natural resources help in improving living condition of citizens in developing countries?
money is a legal thunder generally accepted as a medium of exchange for the payment of debt ,goods and services
money is a way of payment.
money is any thing that is generally accepted as a medium of exchange good for good and settlement of debt and means of payment
money is nothing but a object which is used for exchange of goods and services.
money is anything that is generally accepted as payment of goods and services and settlement of debt
what is demand
Melissa Reply
demand is where the customer is willing and able to buy goods and services during a given period of time
demand is the ability and willingness of an individual to buy goods and services at a given price in a particular period of time
demand is the ability to buy a specific quantities of goods and services at a given price and at a specific period of time
what are the rules of demand
Rosemary Nsebon, Do you mean laws of demand?
what are the rules of demand
the rule of demand is the higher the price the lower the quantity demanded and the lower the price the higher the quantity demanded
what is unemployment
unemployment is a scenario or a phenomenon in an economy whereby people are willing are able to work but cannot a job
Suppose you have a team of two workers: one is a baker and one is a chef. Explain why the kitchen can produce more meals in a given period of time if each worker specializes in what they do best than if each worker tries to do everything from appetizer to dessert. please I need a urgent answer
Oladosu Reply
Enables individuals and countries to consume a variety of goods and services
what is the meaning of competency
Oladosu Reply
competency is an ability and courage to do something perfectly
ability to perform some task
thanks 🙏 it is also the same with the core competency
A sufficient supply
Ebenezer you mean the (core competency) right?
what is mean,median and mode
Ikeh Reply
mean is the average number of a given data
median is the middle number of a given data
in a given data sorry
Pls am new here
what are development bank in Nigeria
Adedigba Reply
and cool
nice to meet everyone
hi how are dears
how can we development economic in our country
Payroll and​ 4p
Change management​ and​ cerrancy
Lawyer army and​ Lawyer​
animal husbandry essay
Rakuane Reply
what's the primary location of capital and money market respectively
what is bank
Nyakeh Reply
A bank is an institution set up purposely for the save keeping of money and other valuables
A bank is a financial institution which helps people to save their money
pls define the HRM and HRP
we have no money in bank....the bank owes us
When a supply curve start from the origin price elasticity of supply is unitory. Provide a simple proof
Felix Reply
please help someone should help me this question
what is price
Divine Reply
the perchesing amount of something is called price
OK pls tell me about economic elasticity of supply and demand
Mumtaz Reply
elasticity in economics is a measurement of the ratio of percentage change in quantity of a particular commodity to the percentage change in a factor that influence demand-price, consumer's income and price of another good
same with supply. How ever economics focus only on price elasticity of supply(PES)
using diagrams defferentiate between price ceiling and price floors
price ceiling lies below the equilibrium price and vice versa
who is a broker
a broker is a middle person between two other parties who makes all the arrangements required to conduct the the transaction.
A soccer field is a rectangle 130 meters wide and 110 meters long. The coach asks players to run from one corner to the other corner diagonally across. What is that distance, to the nearest tenths place.
Kimberly Reply
Jeannette has $5 and $10 bills in her wallet. The number of fives is three more than six times the number of tens. Let t represent the number of tens. Write an expression for the number of fives.
August Reply
What is the expressiin for seven less than four times the number of nickels
Leonardo Reply
How do i figure this problem out.
how do you translate this in Algebraic Expressions
linda Reply
why surface tension is zero at critical temperature
I think if critical temperature denote high temperature then a liquid stats boils that time the water stats to evaporate so some moles of h2o to up and due to high temp the bonding break they have low density so it can be a reason
Need to simplify the expresin. 3/7 (x+y)-1/7 (x-1)=
Crystal Reply
. After 3 months on a diet, Lisa had lost 12% of her original weight. She lost 21 pounds. What was Lisa's original weight?
Chris Reply
how did you get the value of 2000N.What calculations are needed to arrive at it
Smarajit Reply
Privacy Information Security Software Version 1.1a
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get the best Algebra and trigonometry course in your pocket!

Source:  OpenStax, Cấu trúc dữ liệu. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10766/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Cấu trúc dữ liệu' conversation and receive update notifications?