What will be the output of the following program?
4 phương ánCó giải thích
int main()
{
int i = 101;
int *p = &i;
printf("%d\n", *p++);
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: "101". Trong biểu thức *p++, toán tử tăng hậu tố gắn với p chứ không với *p, và nó trả về giá trị con trỏ trước khi tăng, nên phép lấy nội dung làm việc trên địa chỉ cũ, tức đọc i và in 101; chỉ sau lệnh đó p mới trỏ ra ô kế tiếp, điều này vô hại vì p không được dùng nữa. "102" là kết quả nếu tăng chính giá trị được trỏ, tức viết (*p)++ hoặc ++*p; ở đây phép tăng chạm vào con trỏ, không chạm vào i. "0" không có cơ sở nào vì ô nhớ của i chứa 101 và không bị ghi lại. "Address of i" sai vì biểu thức *p đã lấy nội dung chứ không phải địa chỉ, hơn nữa muốn in địa chỉ thì phải dùng p với định dạng %p.
Cùng phần 5
What will be the output of the following C code?
#include <stdio.h>
void main()
{
int *ptr, a = 10;
ptr = &a;
*ptr += 1;
printf("%d,%d\n", *ptr, a);
}Có lời giảiCâu hỏi(Choose 1 answer)
What is the output of this C code?
#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ó 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