What is the output?
4 phương ánCó giải thích
int arr[] = {1, 2, 3, 4};
printf("%d", *(arr + 2));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: "3". Tên mảng dùng trong biểu thức suy biến thành địa chỉ phần tử đầu, và số học con trỏ đếm theo phần tử chứ không theo byte, nên cộng 2 vào tên mảng cho ra địa chỉ của phần tử có chỉ số 2. Dấu sao lấy nội dung tại địa chỉ đó nên in ra 3. Đây đúng là nghĩa gốc của phép viết chỉ số: ngôn ngữ định nghĩa truy cập mảng chính là phép lấy nội dung của địa chỉ đầu cộng độ lệch. Lựa chọn "1" là phần tử ở chỉ số 0, tức kết quả nếu không cộng độ lệch nào. Lựa chọn "2" là phần tử ở chỉ số 1, ứng với cách đếm bắt đầu từ 1 thay vì từ 0. Lựa chọn "4" là phần tử ở chỉ số 3, sẽ đúng nếu độ lệch viết là 3.
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 the output of the C program?
int arr[5] = { 2, 3, 5, 4, 7 };
int *ptr = (&arr + 1);
printf("%d %d\n", *(arr + 1), *(ptr - 1));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