tailieunhanh - Những chủ đề tiến bộ trong C#

Pointer Arithmetic Ta có thể cộng hay trừ số nguyên trên con dụ , giả sử ta có 1 con trỏ trỏ đến số nguyên,và ta thử cộng 1 vào giá trị của nó .trình biên dịch sẽ biết và tăng vùng nhớ lên 4 byte ( do kiểu int có kích thước 4 byte). | Những chủ đề tiến bộ trong C Các mã không an toàn - Phần 2 Pointer Arithmetic Ta có thể cộng hay trừ số nguyên trên con dụ giả sử ta có 1 con trỏ trỏ đến số nguyên và ta thử cộng 1 vào giá trị của nó .trình biên dịch sẽ biết và tăng vùng nhớ lên 4 byte do kiểu int có kích thước 4 byte .nếu là kiểu double thì khi cộng 1 sẽ tăng giá trị của con trỏ lên 8 byte. ta có thể dùng toán tử - - và -- với biến bên phía phải của toán tử này là long hay ulong Ví dụ uint u 3 byte b 8 double d uint pUint u size of a uint is 4 byte pByte b size of a byte is 1 double pDouble d size of a double is 8 Giả sử địa chỉ của những con trỏ này trỏ đến là pUint 1243332 pByte 1243328 pDouble 1243320 sau khi thi hành ta có pUint adds 1 4 bytes to pUint pByte - 3 subtracts 3 3bytes from pByte double pDouble2 pDouble - 4 pDouble2 pDouble - 32 bytes 4 8 bytes Con trỏ sẽ có giá trị pUint 1243336 pByte 1243321 pDouble2 1243328 Ta cũng có thể trừ 2 con trỏ với nhau .giá trị kết quả là kiểu long bằng giá trị con trỏ chia cho kích thước của kiểu mà nó đại diện .Ví dụ double pD1 double 1243324 note that it is perfectly valid to initialize a pointer like this. double pD2 double 1243300 long L pD1-pD2 gives the result 3 24 sizeof double Con trỏ đến Struct - Toán tử truy xuất các thành viên con trỏ Cũng giống như con trỏ trong các kiểu dữ liệu có sẵn. tuy nhiên thêm 1 điều kiện là - Struct không chứa bất kì kiểu tham chiếu con trỏ không thể trỏ đến bất kì kiểu tham chiếu nào. để tránh điều này trình biên dịch sẽ phất cờ lỗi nếu ta tạo ra một con trỏ đến bất kì Struct nào chứa kiểu tham chiếu . Giả sử ta có struct như sau struct MyGroovyStruct public long X public float F Sau đó ta định nghĩa con trỏ cho nó MyGroovyStruct pStruct Khởi tạo nó MyGroovyStruct Struct new MyGroovyStruct pStruct Struct Cũng có thể truy xuất các giá trị thành viên của 1 struct bằng con trỏ pStruct .X 4 pStruct .F

TỪ KHÓA LIÊN QUAN