sách gpt4 ai đã đi

ký tự* p = "xin chào"; printf ("%c %c %c %c", *p, *++p, *p++, *p);

In lại 作者:行者123 更新时间:2023-11-30 18:57:11 27 4
mua khóa gpt4 Nike

char* p = "hello"; printf(" %c %c %c %c", *p, *++p, *p++, *p);

Đầu ra:

l l h h 

我已阅读以下线程,但仍然无法找到为什么输出类似于“l l h h”。有谁可以回答一下吗。

Pointer expressions: *ptr++, *++ptr and ++*ptr .

1 Câu trả lời

由于代码同时包含 ++pp++,因此它会尝试修改 P 两次。

这些表达式出现在函数调用的参数中。 C 标准没有指定函数参数的求值顺序。

当一个程序试图以无序的方式两次修改一个对象时,该程序就会被破坏。 C 2011 标准在第 6.5 条第 2 段中表示,当对同一对象进行两次无序修改时,C 标准不会对程序的行为施加任何要求。

这意味着编译器不必使该程序以任何特定方式工作。编译器本质上“放弃”并执行它发生的任何操作。

关于字符* p = "hello"; printf ("%c %c %c %c", *p, *++p, *p++, *p);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913155/

27 4 0
Bài viết được đề xuất: c# - 阻止用户关闭 Firefox
Bài viết được đề xuất: c# - 匿名类型列表或对象列表
Bài viết được đề xuất: c# - 如何从 ID 不匹配的两个列表中选择项目
Bài viết được đề xuất: javascript - 将多个处理程序绑定(bind)到元素
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com