(Choose 1 answer) What is the output of this C code?
4 phương ánCó giải thích
#include <stdio.h>
#include <conio.h>
int main() {
int n = 267, *pn = &n;
char* pc = pn;
*pc = 0;
printf("n = %d", n);
return 0;
}Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "n = 256". n bằng 267, viết ở hệ mười sáu là 0x010B, tức một byte chứa 0x0B là 11 và byte cao hơn chứa 0x01 ứng với 256. Con trỏ pc giữ cùng địa chỉ của n nhưng mang kiểu con trỏ ký tự, nên *pc = 0 chỉ ghi 0 vào đúng một byte, byte nằm ở địa chỉ thấp nhất; trên máy lưu byte nhỏ trước, byte đó chính là 0x0B, vì vậy n còn lại 0x0100 là 256. "n = 0" sai vì một phép gán qua con trỏ ký tự chỉ xoá một byte, các byte còn lại của int không bị chạm. "n = 267" sai vì phép ghi đã thực sự thay đổi bộ nhớ. "error" sai vì gán con trỏ int cho con trỏ ký tự chỉ khiến trình biên dịch cảnh báo kiểu không khớp, mã vẫn dịch và chạy ra kết quả.
Cùng phần 5
What will be the output of the following program?
int main()
{
int i = 101;
int *p = &i;
printf("%d\n", *p++);
return 0;
}Có lời giảiCâu hỏiWhich function in C is used to deallocate dynamically allocated memory?Có lời giảiCâu hỏiWhat will be printed when the following code is executed?
#include <stdio.h>
int main() {
int a[] = {1,2,3,4,5,6};
int* p = a;
p += 3;
printf("%d, %d",*(a+3), *(p++));
return 0;
}Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây