sách gpt4 ai đã đi

C: char 指针 & 段错误

In lại 作者:太空宇宙 更新时间:2023-11-04 05:21:15 hai mươi bốn 4
mua khóa gpt4 Nike

在接下来的代码中:

char i,*p;
i = 65;
p = &i;
p = (char *) 66;
(*p)++;
printf("%d",p);

我遇到了段错误。我不明白为什么。我有一个指向 char 的指针(在本例中为 char 66=C),然后我将它的值更改为 66 - 到 67。char 的值是否“ protected ”不受此更改的影响?除了 char 之外,其他人也会发生这种情况吗?

我试图理解这件事背后的想法(而不仅仅是修复它)。谢谢。

1 Câu trả lời

问题是:

p = (char *) 66;

应该是:

*p = 66;

P 是指向 char 的指针,因此您不能为其分配 66 之类的值。您可以取消引用 P 以便将值分配给指针“看起来”的位置。

如果你想打印P指向的值,你必须像这样再次使用解引用运算符(*):

printf("%d", *p); // prints the value where p points to

如果你想打印指针地址你可以这样做:

printf("%p", p); // prints the address where p points

关于C: char 指针 & 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6417053/

hai mươi bốn 4 0
太空宇宙
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