Cac Lop Tien Ich Trong Java
-
Upload
do-cong-thanh -
Category
Documents
-
view
42 -
download
0
Transcript of Cac Lop Tien Ich Trong Java
LẬP TRÌNH JAVALẬP TRÌNH JAVA
Bai 7Bai 7: Các lớp tiện ích: Các lớp tiện ích
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 2
Muc tiêuMuc tiêu Kêt thuc bai hoc ban co thê năm đươc:
Sử dụng các lớp wrapper nguyên thủy Làm việc với các xâu (String) Giải thích sự khác biệt giữa các lớp String và StringBuffer
Trình bày được về các lớp tiện ích khác như Math, System.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 3
Nôi dungNôi dung
7.1 Các lớp bao (Wrapper class) 7.2 Xâu (String va StringBuffer) 7.3 Lớp System 7.4 Mảng
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 4
7.1 Các lớp bao 7.1 Các lớp bao Các kiểu dữ liệu nguyên thủy không có
các phương thức liên quan đến nó. Mỗi kiểu dữ liệu nguyên thủy có một lớp
tương ứng gọi là lớp bao: Các lớp bao sẽ “gói” dữ liệu nguyên thủy và
cung cấp các phương thức thích hợp cho dữ liệu đó.
Mỗi đối tượng của lớp bao đơn giản là lưu trữ một biến đơn và đưa ra các phương thức để xử lý nó.
Các lớp bao là một phần của Java API
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 5
7.1 Các lớp bao 7.1 Các lớp bao
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 6
7.1 Các lớp bao 7.1 Các lớp bao Chuyển đổi kiểu dữ liệu Sử dụng toString() để chuyển các giá
trị số thành xâu. Sử dụng parse<type>() và valueOf() để
chuyển xâu thành các giá trị số Sử dụng các phương thức chuyển đổi rõ
ràng để chuyển giữa các kiểu dữ liệu số
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 7
7.1 Các lớp bao 7.1 Các lớp bao Chuyển đổi kiểu dữ liệu
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 8
7.1 Các lớp bao 7.1 Các lớp bao Các hằng số Boolean
Boolean FALSE Boolean TRUE
Byte byte MIN_VALUE byte MAX_VALUE
Character int MAX_RADIX char MAX_VALUE int MIN_RADIX char MIN_VALUE Unicode classification
constants Double
double MAX_VALUE double MIN_VALUE double NaN double NEGATIVE_INFINITY double POSITIVE_INFINITY
Float float MAX_VALUE float MIN_VALUE float NaN float NEGATIVE_INFINITY float POSITIVE_INFINITY
Integer int MIN_VALUE int MAX_VALUE
Long long MIN_VALUE long MAX_VALUE
Short short MIN_VALUE short MAX_VALUE
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 9
7.1 Các lớp bao 7.1 Các lớp bao Ví du
float f = Float.parseFloat("3.14159");); // 3.14159int i System.out.println(f= (new Float(f)).intValue();
String s = (new Integer(i)).toString();System.out.println(s); // 3double d = (new
Integer(Integer.MAX_VALUE)).doubleValue();
System.out.println(d); // 2.147483647E9
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 10
7.1 Các lớp bao 7.1 Các lớp bao Ví dudouble number = Double.parseDouble("42.76");
String hex = Integer.toHexString(42);
double value = new Integer("1234").doubleValue();
String input = "test 1-2-3";
int output = 0;
for (int index = 0;index < input.length();index++)
{
char c = input.charAt(index);
if (Character.isDigit(c))
output = output * 10 + Character.digit(c, 10);
}
System.out.println(output); // 123// 123
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 11
Nôi dungNôi dung
7.1 Các lớp bao (Wrapper class) 7.2 Xâu (String va StringBuffer) 7.3 Lớp System 7.4 Mảng
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 12
7.2 Xâu 7.2 Xâu Một String được tạo thành từ một dãy các
ký tự nằm trong dấu nháy kép:String a = "A String";
String b = ""; Đối tượng String có thể khởi tạo theo
nhiều cách:String c = new String();
String d = new String("Another String");
String e = String.valueOf(1.23);
String f = null;
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 13
7.2 Xâu 7.2 Xâu Ghép xâu:
Toán tử + có thể nối các String:String a = "This" + " is a " + "String";
//a = “This is a String”
Các kiểu dữ liệu cơ bản sử dụng trong lời gọi println() được chuyển đổi tự động sang kiểu Strings
System.out.println("answer = " + 1 + 2 + 3);
System.out.println("answer = " + (1+2+3));
Hai câu lệnh trên có in ra cùng một kết quả?
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 14
7.2 Xâu 7.2 Xâu Các phương thức của xâu:
String name = "Joe Smith";name.toLowerCase(); // "joe smith"name.toUpperCase(); // "JOE SMITH""Joe Smith ".trim(); // "Joe Smith""Joe Smith".indexOf('e'); // 2"Joe Smith".length(); // 9"Joe Smith".charAt(5); // 'm'"Joe Smith".substring(5); // "mith""Joe Smith".substring(2,5); // "e S"
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 15
7.2 Xâu 7.2 Xâu So sánh hai xâu: So sánh oneString == anotherString sẽ gây
nhập nhằng:String s1 = “Hello”;
String s2 = “Hello”;
(s1==s2) trả về true
String s1 = new String (“Hello”);
String s2 = new String (“Hello”);
(s1==s2) trả về false
Hello
s1
s2
Hello
s1
s2
Hello
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 16
7.2 Xâu 7.2 Xâu So sánh hai xâu:
Một xâu có thể so sánh xem có tương đương với một xâu khác
oneString.equals(anotherString) Kiểm tra tính tương đương Trả về true hoặc false
oneString.equalsIgnoreCase(anotherString)
Kiểm tra KHÔNG xét đến ký tự hoa, thường Trả về true hoặc falseString name = "Joe";
if ("Joe".equals(name))name += " Smith";
boolean same = "Joe".equalsIgnoreCase("joe");
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 17
7.2 Xâu 7.2 Xâu Lấy các ký tự trong chuỗi:
Không sử dụng message[0]
Mà dùng message.charAt(index)
Chỉ số (index) bắt đầu từ 0
W e l c o m e t o J a v a
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
message
Indices
message.charAt(0) message.charAt(14) message.length() is 15
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 18
7.2 Xâu 7.2 Xâu String Conversions:
Nội dung của một chuỗi không thể thay đổi mỗi khi chuỗi được tạo. Nhưng có thể convert một chuỗi thành một chuỗi mới bằng cách sử dụng các phương thức sau
"Welcome".toLowerCase() "Welcome".toUpperCase() " Welcome ".trim() "Welcome".replace('e','A') "Welcome".replaceFirst('e','A') "Welcome".replaceAll('e','A')
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 19
7.2 Xâu 7.2 Xâu Tìm ký tự và chuỗi con:
Sử dụng các phương thức sau: public int indexOf(int ch)
public int lastIndexOf(int ch)
public int indexOf(int ch, int fromIndex)
public int lastIndexOf(int ch, int endIndex)
public int indexOf(String str)
public int lastIndexOf(String str)
public int indexOf(String ch, int fromIndex)
public int lastIndexOf(String str, int
endIndex)
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 20
7.2 Xâu 7.2 Xâu Tìm ký tự và chuỗi con:
Ví dụ:
"Welcome to Java!".indexOf('W') returns 0.
"Welcome to Java!".indexOf('x') returns -1.
"Welcome to Java!".indexOf('o', 5) returns 9.
"Welcome to Java!".indexOf("come") returns 3.
"Welcome to Java!".indexOf("Java", 5) returns
11.
"Welcome to Java!".indexOf("java", 5) returns -
1.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 21
7.2 Xâu 7.2 Xâu Chuyển đổi ký tự và số thành chuỗi:
char[] chars = "Java".toCharArray();
String str = new String(new char[] {'J','a','v','a'});
Lớp String cung cấp một số phương thức static valueOf để chuyển đổi một ký tự, mảng ký tự, và các giá trị số thành chuỗi.
Những phương thức này có cùng tên valueOf với tham số khác nhau có kiểu char, char[], double, long, int, và float.
String str = String.valueOf(5.44);
String str = String.valueOf(new char[] {'J','a','v','a'});
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 22
7.2 Xâu 7.2 Xâu StringBuffer
Kiểu bất biến và kiểu biến đổi Một kiểu có thể là bất biến hoặc có thể
thay đổi Đối tượng của kiểu bất biến không thay đổi
giá trị sau khi chúng được tạo ra Ngược lại, đối tượng của kiểu biến đổi có
thể thay đổi giá trị sau khi chúng được tạo ra.
String là kiểu bất biến, StringBuffer là kiểu biến đổi.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 23
7.2 Xâu 7.2 Xâu StringBuffer String:
Các xâu của lớp String được thiết kế để không thay đổi giá trị.
Khi các xâu được ghép nối với nhau một đối tượng mới được tạo ra để lưu trữ kết quả.
Ghép nối xâu thông thường rất tốn kém về bộ nhớ.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 24
7.2 Xâu 7.2 Xâu StringBuffer
String s = new String(“hello”);String t = s;s = new String(“goodbye”);
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 25
7.2 Xâu 7.2 Xâu StringBuffer StringBuffer:
Cung cấp các đối tượng xâu có thể thay đổi giá trị Sử dụng StringBuffer khi:
Dự đoán các ký tự trong xâu có thể thay đổi.
Khi xử lý các xâu một cách linh động, ví dụ như đọc dữ liệu text từ một tệp tin.
Cung cấp các cơ chế hiệu quả hơn cho việc xây dựng, ghép nối các xâu
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 26
7.2 Xâu 7.2 Xâu StringBuffer Tính biến đổi: Nếu một đối tượng bị
biến đổi, thì tất cả các quan hệ với đối tượng sẽ nhận giá trị mới.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 27
7.2 Xâu 7.2 Xâu StringBuffer
public StringBuffer()
Xây dựng một string buffer rỗng có dung lượng = 16.
public StringBuffer(int length)
Xây dựng một string buffer rỗng có dung lượng = length.
public StringBuffer(String str)
Xây dựng một string buffer với nội dung là chuỗi str. Dung lượng khởi tạo bằng 16 + str.length().
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 28
7.2 Xâu 7.2 Xâu StringBuffer Nếu tạo xâu thông qua vòng lặp thì
sử dụng StringBuffer
StringBuffer buffer = new StringBuffer(15);buffer.append("This is ") ;buffer.append("String") ;buffer.insert(7," a") ;buffer.append('.');System.out.println(buffer.length()); // 17System.out.println(buffer.capacity()); // 32String output = buffer.toString() ;System.out.println(output); // "This is a String."
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 29
7.2 Xâu 7.2 Xâu Lớp String:
Constructor: String() String(byte[] bytes) String(byte[] bytes, int offset, int length) String(char[] value) String(char[] value, int offset, int length) String(String original) String(StringBuffer buffer)
Một số phương thức: char charAt(int index) boolean equals(Object anObject) int indexOf(String str) int length() boolean matches(String regex) String substring(int beginIndex, intendIndex) String toUpperCase() String trim()
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 30
7.2 Xâu 7.2 Xâu Lớp StringBuffer:
Constructors: StringBuffer() StringBuffer(int length) StringBuffer(String str)
Một số phương thức: StringBuffer append(…) StringBuffer insert(…) StringBuffer delete(int start, int end) int length() StringBuffer reverse() String substring(int start, int end) String toString()
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 31
Nôi dungNôi dung
7.1 Các lớp bao (Wrapper class) 7.2 Xâu (String va StringBuffer) 7.3 Lớp System 7.4 Mảng
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 32
7.3 Lớp System 7.3 Lớp System Không cần/được khởi tạo đối tượng
Lớp System là lớp final, các phương thức khởi tạo được khai báo là private.
Tất cả các thuộc tính và phương thức của System đều được khai báo là static.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 33
7.3 Lớp System 7.3 Lớp System java.lang.System chứa nhiều hàm
tiện ích hữu dụng Kiểm soát vào ra (I/O) chuẩn
Các luồng InputStream in, PrintStream out và err là các thuộc tính của lớp System.
Có thể thiết lập lại nhờ các hàm setIn(), setOut() và setErr()
arraycopy(): Sao chép mảng hoặc tập con với hiệu năng cao.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 34
7.3 Lớp System 7.3 Lớp System currentTimeMillis(): Trả về thời
gian hiện tại theo millisecond exit(): Kết thúc hoạt động của Java
Virtual Machine gc(): Yêu cầu bộ thu gom rác hoạt
động Các phương thức liên quan đến thuộc
tính của hệ thống: Lấy các thông tin thuộc tính như phiên bản của Java Runtime Environment version, thư mục cài đặt Java,...
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 35
7.3 Lớp System 7.3 Lớp System
import java.util.Properties;public class PropertiesTest {
public static void main(String[] args) {System.out.println(
System.getProperty("path.separator"));System.out.println(
System.getProperty("file.separator"));System.out.println(
System.getProperty("java.class.path"));System.out.println(
System.getProperty("os.name"));System.out.println(
System.getProperty("os.version"));
System.out.println(System.getProperty("user.dir"));
System.out.println(System.getProperty("user.home"));
System.out.println(System.getProperty("user.name"));}
}
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 36
7.3 Lớp System 7.3 Lớp System
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 39
7.3 Lớp System 7.3 Lớp System Các tham số dòng lệnh
Có thể truyền chuỗi cho phương thức main từ dòng lệnh khi chạy chương trình.
Khi phương thức main được gọi, trình biên dịch Java tạo 1 mảng chứa các tham số dòng lệnh và truyền tham chiếu mảng cho args.class TestMain {
public static void main(String[] args) {
...
}
}
java TestMain arg0 arg1 arg2 ... argn
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 40
7.3 Lớp System 7.3 Lớp System Các tham số dòng lệnh
Các chuỗi được truyền cho chương trình chính được chứa trong args - là một mảng các chuỗi. Các phần tử: args[0], args[1], ..., args[n], tương ứng với arg0, arg1, ..., argn trong dòng lệnh.
args.length là số chuỗi được truyền
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 41
7.3 Lớp System 7.3 Lớp System Các tham số dòng lệnh
class CommandLineArguments {
public static void main(String args[]) {
System.out.println(args[0]);
System.out.println(args[1]);
System.out.println(args[2]);
} // end of main
} // end of class
java CommandLineArguments 1 2 abcde
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 42
7.3 Lớp System 7.3 Lớp System Các tham số dòng lệnh
Kiểm tra sự có mặt của tham số
class CommandLineArguments {
public static void main(String args[]) { if (args.length>0) System.out.println(args[0]); if (args.length>1) System.out.println(args[1]); if (args.length>2) System.out.println(args[2]);
} // end of main
} // end of class
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 43
Nôi dungNôi dung
7.1 Các lớp bao (Wrapper class) 7.2 Xâu (String va StringBuffer) 7.3 Lớp System 7.4 Mảng
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 44
7.4 Mảng7.4 Mảng Tập hợp hữu hạn các phần tử cùng
kiểu Phải được khai báo trước khi sử
dụng Khai báo:
Cú pháp: kieu_dlieu[] ten_mang = new kieu_dlieu[KT_MANG]; kieu_dlieu ten_mang[] = new kieu_dlieu[KT_MANG];
Ví dụ: boolean bit[] = new boolean[6];reference Array or ObjectvariableName
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 45
7.4 Mảng7.4 Mảng Khai báo, khởi tạo giá trị ban đầu:
Cú pháp: kieu_dl[] ten_mang = {ds_gia_tri_cac_ptu};
Ví dụ: int[] number = {10, 9, 8, 7, 6};
Nếu không khởi tạo nhận giá trị mặc định tùy thuộc vào kiểu dữ liệu.
Luôn bắt đầu từ phần tử có chỉ số 0 Mỗi khi mảng được tạo, kích thước của
nó được ấn định, không thể thay đổi.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 46
7.4 Mảng7.4 Mảng
Tên của mảng (tất cả các thành phần trong mảng có cùng tên, c)
Chỉ số (truy nhập đến các thành phần của mảng thông qua chỉ số)
c[ 0 ]
c[ 1 ]
c[ 2 ]
c[ 3 ]
c[ 4 ]
c[ 5 ]
c[ 6 ]
c[ 7 ]
c[ 8 ]
c[ 9 ]
c[ 10 ]
c[ 11 ]
-45
6
0
72
1543
-89
0
62
-3
1
6453
78
c.lengthc.length: cho biết đô dài của mảng c
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 47
7.4 Mảng7.4 Mảng Khởi tạo mảng: Sử dụng vòng lặp:for (int i = 0; i < myList.length; i++) myList[i] = i;
Khai báo, tạo, khởi tạo trong một lệnh:double[] myList = {1.9, 2.9, 3.4, 3.5};
Lưu ý: chỉ trong 1 lệnh, nhiều hơn 1 lệnh là sai:
double[] myList;myList = {1.9, 2.9, 3.4, 3.5};
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 48
7.4 Mảng7.4 Mảng Khởi tạo mảng:double[] myList = {1.9, 2.9, 3.4, 3.5};
Câu lệnh trên tương đương với các câu lệnh sau:
double[] myList = new double[4];
myList[0] = 1.9;
myList[1] = 2.9;
myList[2] = 3.4;
myList[3] = 3.5;
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 49
7.4 Mảng7.4 Mảng Ví dụ:int array[]; // khai báoarray = new int[10]; // tạo mảng
int array[] = {32,27,64,18,95,14,90,70,60,37};
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 50
7.4 Mảng7.4 Mảng Ví dụ:
int MAX = 5;boolean bit[] = new boolean[MAX];float[] value = new float[2*3];int[] number = {10, 9, 8, 7, 6};System.out.println(bit[0]); // prints “false”
System.out.println(value[3]); // prints “0.0”
System.out.println(number[1]); // prints “9”
for (int i=0;i<number.length;i++){System.out.println(number[i]);
}
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 51
7.4 Mảng7.4 Mảng Khai báo mảng :
Cách khai báo Mô tả Cú pháp Ví dụ
Chỉ đơn thuần khai báo
Chỉ đơn thuần khai báo mảng
Datatype identifier[] char ch[ ];khai báo mảng ký tự
có tên ch
Khai báo và tạo mảng
Khai báo và cấp phát bộ nhớ cho các phần tử mảng sử dụng toán tử “new’
Datatype identifier[]= new datatype [size ]
char ch[] = newchar [10 ];Khai báo một mảng
ch và lưu trữ 10 ký tự
Khai báo, kiến tạo và khởi tạo
Khai báo mảng,cấp phát bộ nhớ cho nó và gán các giá trị ban đầu cho các phần tử của mảng
Datatype identifier[]= {value1,value2…valueN};
char ch []= {‘A’,’B’,’C’,’D’};khai báo mảng ch và
lưu 4 chữ cái kiểu ký tự
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 52
7.4 Mảng7.4 Mảng Truyền mảng cho phương thức:
Java sử dụng truyền tham trị để truyền các tham số cho
phương thức. Có nhiều sự khác nhau quan trọng khi truyền
tham trị của biến có kiểu dữ liệu cơ sở và biến mảng.
Với tham số kiểu dữ liệu cơ sở, giá trị thực được truyền.
Thay đổi giá trị của tham số cục bộ trong phương thức
không làm thay đổi giá trị của biến bên ngoài phương thức.
Với tham số kiểu mảng, giá trị của tham số chứa một tham
chiếu tới mảng; tham chiếu này được truyền cho phương
thức. Bất kỳ sự thay đổi nào xuất hiện trong thân phương
thức sẽ làm thay đổi mảng gốc được truyền.
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 53
7.4 Mảng7.4 Mảng Truyền mảng cho phương thức:
swapFirstTwoInArray(a)
swapFirstTwoInArray(array)
Pass by value (Reference value)
a Reference:
a[0] a[1]
array Reference
swap(a[0], a[1])
swap( n1, n2)
Pass by value
a[0] 1 2
n1 n2 1 2
a[1]
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 54
7.4 Mảng7.4 Mảng Copy mảng :
Contents of list1
list1
Contents of list2
list2
Before the assignment list2 = list1;
Contents of list1
list1
Contents of list2
list2
After the assignment list2 = list1;
Garbage
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 55
7.4 Mảng7.4 Mảng Copy mảng :
Sử dụng một vòng lặp:
int[] sourceArray = {2, 3, 1, 5, 10};
int[] targetArray = new int[sourceArray.length];
for (int i = 0; i < sourceArrays.length; i++)
targetArray[i] = sourceArray[i];
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 56
7.4 Mảng7.4 Mảng Copy mảng :
Tiện ích arraycopy:
arraycopy(sourceArray, src_pos, targetArray,
tar_pos, length);
Ví dụ:
System.arraycopy(sourceArray, 0, targetArray, 0,
sourceArray.length);
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 57
7.4 Mảng7.4 Mảng Mảng nhiều chiều:
Bảng với các dòng và cột Thường sử dụng mảng hai chiều Ví dụ khai báo mảng hai chiều b[2][2]int b[][] = { { 1, 2 }, { 3, 4 } };
1 và 2 được khởi tạo cho b[0][0] và b[0][1] 3 và 4 được khởi tạo cho b[1][0] và b[1][1]
int b[3][4];
11/04/23 Bộ Môn CNPM - ĐHBK Hà Nội 58
7.4 Mảng7.4 Mảng Mảng nhiều chiều:
b[ 1 ][ 0 ] b[ 1 ][ 1 ] b[ 1 ][ 2 ] b[ 1 ][ 3 ]
Row 0
Row 1
Row 2
Column 0
Column 1
Column 2
Column 3
Chỉ số hàng
Tên mảng
Chỉ số côt
b[ 0 ][ 0 ] b[ 0 ][ 1 ] b[ 0 ][ 2 ] b[ 0 ][ 3 ]
b[ 2 ][ 0 ] b[ 2 ][ 1 ] b[ 2 ][ 2 ] b[ 2 ][ 3 ]