为什么一直提示第三行有问题啊?


#include<stdio.h>
void f3(int*p){
    (*p)++:
}
void main(){
    int n = 9:
    f3(&n):
    printf("n=%d",n):
    getchar():
}

你把分号写成了冒号

#include<stdio.h>
void f3(int*p){
    (*p)++;
}
int main(){
    int n = 9;
    f3(&n);
    printf("n=%d",n);
    getchar();
    return 0;
}

语句结尾 要是 分号 ;

句末冒号改成分号

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7715515
  • 这篇博客你也可以参考下:指针申请内存后到底有什么变化?
  • 除此之外, 这篇博客: 浮点数的表示方法中的 浮点数为什么有精度损失? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我们再来看一下,平时经常听到的浮点数会有精度损失的情况是怎么回事?

    如果我们现在想用浮点数表示 0.2,它的结果会是多少呢?

    0.2 转换为二进制数的过程为,不断乘以 2,直到不存在小数为止,在这个计算过程中,得到的整数部分从上到下排列就是二进制的结果。

    0.2 * 2 = 0.4 -> 0
    0.4 * 2 = 0.8 -> 0
    0.8 * 2 = 1.6 -> 1
    0.6 * 2 = 1.2 -> 1
    0.2 * 2 = 0.4 -> 0(发生循环)
    ...
    

    所以 0.2(D) = 0.00110…(B)。

    因为十进制的 0.2 无法精确转换成二进制小数,而计算机在表示一个数字时,宽度是有限的,无限循环的小数存储在计算机时,只能被截断,所以就会导致小数精度发生损失的情况。

  • 您还可以看一下 周红川老师的仿站原理和流程演示课程中的 仿站的概念小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    根据提供的参考资料,你遇到的问题是在第三行出现错误。根据你提供的信息不足,我无法具体回答你的问题。以下是一些可能的原因和解决方案:

    1. 语法错误:请确保你的代码没有语法错误,特别是在第三行。检查是否有拼写错误、括号匹配错误、缺少分号等。你可以在回答中提供第三行的具体代码和错误提示,这样我就可以更好地帮助你找到问题。

    2. 未定义的变量:如果第三行使用了一个未定义的变量,会导致错误。请确保你在第三行之前正确地声明和初始化了需要使用的变量。

    3. 缺少头文件:如果第三行依赖于某个头文件中的定义,但你没有包含相应的头文件,会导致错误。请检查你的代码,确保包含了需要的头文件。

    4. 编译器问题:有时,某些特定的编译器或编译器版本可能存在错误或限制。如果你确定代码没有问题,可能是编译器的问题。尝试升级或更换编译器,看看问题是否得到解决。

    如果你可以提供更多具体的信息,我将能够更好地帮助你解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^