Chủ đề: Pointer
-
22-06-2014, 08:03 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình hiểu rồi. Cám ơn hai bạn nhiều nhé [IMG]images/smilies/biggrin.png[/IMG]
View more random threads:
- Có hay không sự sa sút của Apple?
- Hoạt động của phép toán i++, ++i trong vong lặp for
- Pointer
- Các Pro Sửa dùm em lỗi " Thread 1: signal SICABRT" như hình bên dưới:
- Tài liệu hướng dẫn xây dựng ứng dụng iPhone - iOS
- Hỏi về Modifier trong lập trình C
- Phong cách kiến trúc xanh là phong cách được ưu chuộng hiện nay
- code Bài ba cào
- Xin đề bài trắc nghiệm về IOS
- Cài đặt công cụ lập trình Objective C trên Window
-
22-06-2014, 03:35 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Pointer
Mình mới gặp đoạn code này.
Mã:#include<stdio.h> #include<conio.h> main() { int *q,a[10]={5,4,6,4,3,9,7,8,1,0}; char *p; p=(char*)a; p++; q=(int*)p; printf(" %d",*q); }
-
22-06-2014, 04:07 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cái này là misaligned memory access rồi.
Nếu là int 16bit:
- Big-endian: Kết quả là 4
- Little-endian: Kết quả là 4*2^8=1024.
-
22-06-2014, 05:59 PM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Trường hợp của bạn là Little endian (http://en.wikipedia.org/wiki/File:Big-little_endian.png) và int 16 bit
Xét a[0] và a[1]:
Mã:a[0] = 5: (first byte) 0000 0101 (second byte) 0000 0000 a[1] = 4: (first byte) 0000 0100 (second byte) 0000 0000 p = a: (first byte) 0000 0101 p++ : (first byte) 0000 0000 q = p: (first byte) 0000 0000 (second byte) 0000 0100 ( lấy từ first byte của a[1])
Vậy q = 1024.
Sự đa dạng trong các mẫu mã và kiểu dáng của sản phẩm Đồ Thờ Gỗ cũng là điểm thu hút đặc biệt. Từ những tượng phật nhỏ xinh, đến các bức thư pháp hoặc các bát hương gỗ được điêu khắc tỉ mỉ, đều mang...
Tinh Thần Truyền Bá: Skyhome.vn và...