void main() { int ints[] = { 0, 1, 2, 3 }; int* i1 = ints + 1; int* i2 = ints + 2; int a = ++*i1 + *i2++; int b = *++i1 + *i2–; printf(“%d#%d”, a, b); getch(); } What is output of following code?

void main()

{

int ints[] = { 0, 1, 2, 3 };

int* i1 = ints + 1;

int* i2 = ints + 2;

int a = ++*i1 + *i2++;

int b = *++i1 + *i2–;

printf(“%d#%d”, a, b);

getch();

}

What is output of following code?

A. 4#4

B. 4#5

C. 5#6

D. 4#6

Hướng dẫn

Chọn B là đáp án đúng

Xem lời giải

Xem lời giải

– Lệnh int a = ++*i1 + *i2++;, toán tử * và ++ cùng thứ tự ưu tiên nhưng có thứ tự kết hợp từ phải sang trái. i2++ sẽ được thực hiện trước nhưng i2 sẽ trỏ tới phần tử tiếp theo sau khi i2 được sử dụng( nghĩa là *(i2++) = 2). ++*i1 = ++(i*) = ints[1] = 2. a = 2 + 2 = 4. Sau lệnh này, i2 trỏ tới phần tử cuối cùng của mảng ints[],i1 trỏ tới phần tử thứ 2 của mảng ints[], giá trị ints[1] bị thay đổi (=2).

– Lệnh int b = *++i1 + *i2–;, toán tử * và — cùng thứ tự ưu tiên nhưng có thứ tự kết hợp từ phải sang trái. i2– được thực hiện trước nhưng i2 sẽ trỏ tới phần tử thứ 3 của mảng sau khi i2 được sử dụng( nghĩa là *(i2–) = 3). *++i1 = *(++i1) = ints[2] = 2. b = 2 + 3 = 5.

 

Thư viện tài liệu12 Tháng bảy, 2023 @ 3:10 chiều

Đánh giá chủ đề này
How to whitelist website on AdBlocker?

How to whitelist website on AdBlocker?

  1. 1 Click on the AdBlock Plus icon on the top right corner of your browser
  2. 2 Click on "Enabled on this site" from the AdBlock Plus option
  3. 3 Refresh the page and start browsing the site