-
23-10-2015, 11:58 AM #1Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
A/c giỏi c++ giúp giùm e mấy bài này với.
Kết quả của chương trình dưới đây là gì? Hãy giải thích.
#include <stdio.h>
int main(){
int i = 158;
char c = i;
int j = c;
printf("%d",j);
return 0;
}
Hãy giải thích điều gì xảy ra khi chạy đoạn mã sau:
void main(){
char * p = new char[30];
p = "hello";
delete [] p;
}
Kết quả in ra màn hình của đoạn mã sau là gì? Giải thích.
#include <stdio.h>
#define add(x, y, z) x + y + z
int main(){
float a = (add(10, 2, 1) * 5.0f);
printf("%f",a);
return 0;
}View more random threads:
- Thắc mắc về đoạn code nhập tên
- Phát triến ứng dụng Iphone trên iPhone Development SDK
- Hỏi về Modifier trong lập trình C
- Ae có code ngắn hơn về nhập ma trận xoắn óc ko ????
- Phong cách kiến trúc xanh là phong cách được ưu chuộng hiện nay
- Hỏi về so sánh các chuỗi con có trọng số
- Thắc mắc
- Socket trên Objective c
- Pointer
- Xin đề bài trắc nghiệm về IOS
-
23-10-2015, 03:54 PM #2Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Cái đầu = -98. Vì ở dòng char c = i; tương đương char c = 158; Nhưng kiểu char nhận giá trị 1 byte. Do đó khi quá nó sẽ vòng ngược lại, giống vòng tròn ấy. Nghĩa là c = 127 + 31. Từ -128 đến -99 là có 30 giá trị. Vậy giá trị thứ 31 là -98.
Cái thứ hai là một con trỏ tên p, trỏ đến một mảng char có 30 phần tử. Nghĩa là cấp một vùng nhớ có 30 byte và cho p nhớ địa chỉ của 30 byte này. Sau đó gán các char h,e,l,l,o,\0 vào vùng 30 byte này. Cuối cùng là delete p nghĩa là delete cái ô nhớ ghi địa chỉ của 30 byte kia, chứ không delete nội dung của 30 byte
ra kết quả là 17 do add(10, 2, 1) sẽ được thay bằng 10 + 2 + 1 vậy câu lệnh sẽ thành (10 + 2 + 1 * 5.0f); Nhân ưu tiên trước => 10+2+5 = 17
-
23-10-2015, 04:07 PM #3Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn có thể giải thích giùm cái vòng tròn được không, mình không hiểu lắm.
-
24-10-2015, 11:38 AM #4Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi LPS86
sau khi gán p = "hello" thì p trỏ đến 1 vùng mới, không còn là cái 30 byte kia nữa. delete[] p sẽ gây lỗi.
-
24-10-2015, 02:04 PM #5Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
0 1 2 3 4 .............. 126 127 -128 -127 -126 -125 -124..............-2 -1 0 1 2 3........
-
25-10-2015, 06:49 PM #6Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Đúng là delete[] p sẽ gây lỗi nhưng nói "sau khi gán p = "hello" thì p trỏ đến 1 vùng mới" thì chưa hẳn.
Mã:char * p = new char[30];
-
25-10-2015, 07:41 PM #7Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi LPS86
http://ideone.com/E2L9KY
Pallet nhựa Long An đã trở thành một trong những lựa chọn phổ biến cho nhu cầu vận chuyển và lưu trữ hàng hóa trong nhiều ngành công nghiệp. Với đặc tính nhẹ nhàng, chắc chắn và dễ vận chuyển, các...
Thanh lý pallet nhựa Long An giá rẻ