用scanf的函数输入三个整指针变量*p和p的区别,用prinf函数输出这三个数的乘积

在C语言中是用printf函数进行输出用scanf函数进行输入的。C++保留了C语言的这一用法在此只作很简单的介绍。更多内容请查看:

scanf函数一般格式是:

printf函数的一般格式是

【例3.4】用scanf和printf函數进行输入和输出

 
}

 问题的关键在于这里c被声明为char類型,而不是int类型当程序要求scanf读入一个整数,应该传递给它一个指向整数的指针而程序中scanf函数得到的却是一个指向字符的指针,scanf函数並不能分辨这种情况它只是将指向这个字符的指针作为指向整数的指针而接受,并且在指针指向的位置存储一个整数因为整数所占的存储空间要大于字符所占的存储空间,所以字符附近的内存将被覆盖

 字符c附近的内存中存储的内容是由编译器决定的,本例中它存放的昰整数i的低端部分因此,每次读入一个数值到c时都会将i的低端部分覆盖为0,而i的高端部分本来就是0相当于i每次都被重新设置为0,循環将一直进行当到达文件的结束位置后,scanf函数不再试图读入新的数值到c这时,i才可以正常地递增最后终止循环。

}

我要回帖

更多关于 指针变量*p和p的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信