-
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:
- không dùng được "else if" trong visual studio 2013?
- Cài đặt công cụ lập trình Objective C trên Window
- Phát triến ứng dụng Iphone trên iPhone Development SDK
- Series video hướng dẫn làm quen với lập trình iOS, Objective C, Swift
- Hoạt động của phép toán i++, ++i trong vong lặp for
- Thắc mắc về unit testing???
- Thắc mắc
- không dùng được "sqrt"?
- Trời ơi tin được không? Ưu đãi hàng trăm triệu khi thiết kế nội thất
- Xử lí hình ảnh trên objective c
-
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
Hiện nay trên thị trường xuất hiện rất nhiều loại thuốc bôi tăng kích thước dương vật được lăng xê là có khả năng làm tăng kích cỡ dương vật của cánh mày râu. Tuy nhiên không phải loại thuốc nào cũng...
Thuốc tăng kích thước chim có tác...