c语言问题!!!!!!!!

c语言问题!!!!!!!!c中的printf输出和C++中的cout有啥区别?我是新手,请由浅入深的讲讲,谢谢... c语言问题!!!!!!!!c中的printf输出和C++中的cout有啥区别?我是新手,请由浅入深的讲讲,谢谢 展开
 我来答
弑绯
2018-05-07 · TA获得超过2500个赞
知道小有建树答主
回答量:893
采纳率:75%
帮助的人:724万
展开全部
  1. 你学习c,问这个问题暂时有点超纲了。你对c++有一定了解才行。你需要理解对象,重载等知识点。

  2. 为了方便你理解,一切都从简。首先你可以理解,printf是c的输出方法,cout是c++的输出方法。当然因为c++沿用了c的标准输入输出,所以c++也可以用printf。

  3. 现在简单说下几个概念,首先是对象,这个我还真不知道该怎么给你解释,你真想弄明白,就需要自己去看c++的面向对象概念。暂时你可以把他看成一个升级版的集合吧。集合里面可以有属性,也可以有函数方法。

  4. 重载,c语言中是在同一个文件中,是不允许相同名字的函数出现的。c++可以。函数名可以一样,只要参数不同就行。在调用这类相同名字的函数时,编译器会自动根据你传入的参数类型,选择相应的方法进行运行。

  5. printf是一个函数。原型如下

int printf(const char *format, ...);

你可以看到,他的参数除了第一个是char型确认的,其后的参数,不管是数量,还是类型都没确认。这里就会出现一个问题。因为后面的参数类型不确定,而编译器又不会自动去识别,所以在输出的时候就很容易出错

#include<stdio.h>
int main(){
int a=5;
float x = a;     

printf("%d\n",a);
printf("%f\n",a);   //会输出5.000000吗?
printf("%f\n",x);
printf("%d\n",x);  
printf("%f,%f\n",a,x);  
printf("%f,%f\n",x,a);  
printf("%d,%f\n",a,x);

return 0;
}

你可以去试试这段代码,亲自试过你才能理解。就因为这个原因,所以我们说printf是不安全的。

6、c++中就不会出现这种情况,因为函数的参数类型一开始就是固定的。因为重载的关系。在实际调用中,是根据参数的类型选择合适的函数方法进行调用。所以就不会出现这种问题。

7、前面我说了printf是一个函数。而cout实际是iostream类的一个对象。这里我就不深入说明了。你有个概念就行。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式