gpt4 book ai didi

c - 为什么这段代码会删除前 3 个字符?

转载 作者:行者123 更新时间:2023-11-30 19:56:27 25 4
gpt4 key购买 nike

我正在学习 C,我找到了这个程序,但我不明白为什么它会删除前三个字符。这背后的数学原理是什么?

#include <stdio.h>
#include <conio.h>

void main(void){
int *ptr;
char *str="hello world";
char *s_ptr;
ptr = (int *)str;
ptr++;
s_ptr = (char *) ptr;
printf("%s", --s_ptr);
_getch();
}

最佳答案

sizeof(int) 在您的平台上似乎是 4 个字节。当您执行 ptr++ 时,指针会增加 4 个字节,而不是您期望的 1 个字节,因为指针 ptr 的类型是 int 而不是 字符

关于c - 为什么这段代码会删除前 3 个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27785404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com