[C++]函数原型为 abc(float x,char y);为什么返回值类型是int.

作者&投稿:勾知 (若有异议请与网页底部的电邮联系)
C++中为什么临时对象的引用一定要加const;就像: const string& s = string("abc"); 求详解~

如 iamchenmin 所说,有防止修改的功能。另,

1、考虑如下函数定义:
int fun2(int& pi)
{
return pi;
}
因为没有修改pi,所以参数就懒得加const限制,但在其他地方调用次函数时会有限制:非const的引用参数必须用与其类型一致的对象/量来初始化,
也就是说可以这样用:int a=5;b=fun2(a);
这样:int b=fun2(5);是错的。
因为数字5是一个字面值,也就是个右值,而函数要求的是一个具体的int类型的对象/变量,需要左值。
然后这样:long a=5;int b=fun2(a);也不行,类型不一样。
但参数加上const后上两种都是合法的,const引用的参数允许可行的转换,比如fun2(3.14),参数是个浮点,但编译器会转换成int然后调用,要是压根转换不过去那肯定加了const也不行的。

2、另外,即使说,我所有代码为了易读,绝对不会出现字面值这东西,还有个问题。如果你写了个函数为了保护参数加了const,但函数里面调用了另一个参数没const的函数,那么这里估计就要出错,const实参不能传递给非const形参。虽然你能保证自己的代码不冲突,但不能保证别人的代码,尤其是合作的时候每人写一个部分。

3、综上,不需要改动的参数,如果要通过引用传递,全都加上const最安全。

ps:你所说的“强制要求添加的”,实际上并不是强制,因为加不加是作者自己的意思,而编译错误都是出在调用的语句,也就是使用者错了 o(∩_∩)o...

abc 是函数名,AA&是指函数的返回值是AA类型的引用

  C++函数原型为 abc(float x,char y);而返回值类型是int的原因如下:
  因为返回值类型和参数类型没有关系,不是说函数原型的参数类型就是返回值类型,在 c或c++语言中很多函数一般返回值类型都是int,在C++中,函数的返回类型默认是int型的,如果不强制性规定函数的返回类型,系统就会默认该函数的返回类型是int型。

一、在C++中,函数的返回类型默认是int型的,如果你不写函数的返回类型,那系统就为默认该函数的返回类型是int型的,
二、数组的下标只要是整数表达式就可以,像你说的a[a[8]+a[2]];这相当于a[13],很明显它是越界了,但是,记住一点,数组是不会检查下标越界的,也就是说不会警告也不会报错,只是a[13]输出的值会是一个随机的不确定值

返回值类型和参数类型没有关系啊
比如
int abc(float x,char y)
{
if(y=='a')
return 1;
else
return 0;
}

a[a[8]+a[2]]就是 a[13],这个已经越界,访问这个位置结果未知

在 c语言中好多的函数一般都是int型的值作为返回值


...=x^2-1(x>=0)的值,要求函数原型为float fun(float x)?
5 利用函数的方法编程C语言,求f(x)=x^2+1(x<0),f(x)=x^2-1(x>=0)的值,要求函数原型为float fun(float x)include<stdio.h> include<math.h> double F(double a){ double b;if(a>0)b=pow(a,2);else if(a=0)b=1;else b=(-2)*x;return b;} int main(){ double x...

求c语言各种常用函数原型写法
求c语言各种常用函数原型写法(书写格式),最好有实例,谢谢!如printf(格式控制,输出表列);printf(“%d”,a);越全越好哈!谢谢!... 求c语言各种常用函数原型写法(书写格式),最好有实例,谢谢!如printf(格式控制,输出表列); printf(“%d”,a);越全越好哈!谢谢! 展开 ...

c语言的开方怎么用?
c语言的开方函数为sqrt函数.功 能:计算一个非负实数的平方根.函数原型:在VC6.0中的math.h头文件的函数原型为double sqrt(double).说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力.头文件:math 例子如下:直接编译,程序输出结果如下图所示:...

c语言pow
在C语言中,pow函数用于计算一个数的幂。其函数原型为double pow,其中x是底数,y是幂。函数返回x的y次方的值。1. pow函数的基本介绍 在C语言中,进行数学运算时,有时需要计算一个数的高次幂。这时,我们可以使用标准库中的pow函数。该函数接受两个参数:第一个是底数,第二个是指数。通过这个...

c语言开方是哪个函数
c语言的开方函数是:sqrt()函数。1、功能:计算一个非负实数的平方根。2、函数原型:在VC6.0中的math.h头文件的函数原型为double sqrt(double)。3、说明:sqrt系Square Root Calculations(平方根计算),通过这种运算可以考验CPU的浮点能力。4、头文件:math double sqrt(double x)参数解释:x 为要...

printf中的%c,%d,%u...都分别代表输出的是什么类型的?
C语言中printf语句的简介:printf()是C语言标准库函数,用于将格式化后的字符串输出到标准输出。标准输出,即标准输出文件,对应终端的屏幕。printf()申明于头文件stdio.h。函数原型:int printf ( const char * format, ... );返回值:正确返回输出的字符总数,错误返回负值,与此同时,输入输出流错误...

C语言所有函数都是由函数说明和什么组成
C语言所有函数都是由函数说明和主函数main()组成。函数声明为编译器提供了有用的信息,编译器在翻译代码的过程中,只有见到函数原型(这里即可以是声明也可以是定义)之后才知道这个函数的名字、参数类型和返回值,这样碰到函数调用时才知道怎么生成相应的指令。所以函数原型必须出现在函数调用之前,这也是...

c语言编程题 编写求一组数据中最大值的函数,函数原型为:int find...
include <stdio.h> define N 10 int find_max(int *p, int n);int main(void){ int a[N] = {1, 87, 0, 2, 6, 90, -30, 34, 109, 1000};printf("最大值为%d\\n", find_max(a, N));return 0;} int find_max(int *p, int n){ int max = p[0], i = 1;for(i ...

c语言 write()、read()函数原型
int Handle; char String[ ]="hello";Handle = _open("sample.txt",_O_RDWR|_O_CREAT);_write(Handle,String,sizeof(String));_close(Handle);从一个文件读取数据 int _read( int handle, void *buffer, unsigned int count );这个例子中打开文件eof.c,每次读取10个字节,直到全部字节被...

c语言的sqrt()怎么用
C语言中sqrt()意思是平方根函数,计算一个非负实数的平方根。 在VC6.0中的math.h头文件的函数原型为double sqrt(double number)。sqrt()函数的输入参数不允许为负数,若输入赋值作为函数入参,将得不到正确的结果。因此在调用函数之前,应检查函数输入参数。

延津县17526047633: 函数f有2个参数,分别为int型和double型,f的返回值类型是float,其函数原型为? -
澹绍奇谷: C++函数原型为abc(floatx,chary);而返回值类型是int的原因如下: 因为返回值类型和参数类型没有关系,不是说函数原型的参数类型就是返回值类型,在c或c++语言中很多函数一般返回值类型都是int,在C++中,函数的返回类型默认是int型的,如果不强制性规定函数的返回类型,系统就会默认该函数的返回类型是int型.

延津县17526047633: 在可变参数的函数里,为什么float型要提升为Double -
澹绍奇谷: 因为对于常量来说,你写3.14当作参数调用时,c语言默认这是double型的,如果参数设计成float型的,调用时必须要写3.14f,这样不方便、不自然,很容易出错

延津县17526047633: C++中函数
澹绍奇谷: 明一个函数,函数名是abc,返回值是double型,有2个参数,第一个是double型,第二个是char型.

延津县17526047633: c++函数原形
澹绍奇谷: 函数原型类似函数定义时的函数头.为了能使函数在定义之前就能被调用,C++规定可以先说明函数原型,然后就可以调用函数.函数定义可放在程序后面.这样看,int yx(); 是函数的原型.意思就是声明了一个名称为yx的函数,他的返回值是 int(整数)类型.

延津县17526047633: 用C++输出 a*b/c 要用到函数原型,我是初学者,越简单越好.a,b,c要用键盘出入 -
澹绍奇谷: #include<iostream> using namespace std; double f(double a,double b,double c); void main() { double a,b,c; cout<<"请输入a,b,c的值:"<<endl; cin>>a>>b>>c; cout<<"a*b/c="<<f(a,b,c)<<endl; } double f(double a,double b,double c) { return a*b/c; }

延津县17526047633: C语言编写一函数 函数原型为double fnFun(doublex) -
澹绍奇谷: 基本答案:double fnFun(double x) {/*因为每个分支都直接调用 return 语句返回退出函数,所以 else 可以省略.*/ if(x > 1) return x * x + 1; if(xreturn x * x - 1; return x * x; } 一般答案:double fnFun(double x) { return x * x + (x > 1 ? 1 : (x }==== [原创回答团]

延津县17526047633: C++函数的原型声明,函数定义和函数调用之间如何区分
澹绍奇谷: 举个例子 int func(int a);//这里 如果是有分号 没有函数实现 并且参数是形参 还有返回值 就是函数声明 func(3);这个就是函数调用 参数是实参 int func(int a)//有函数实现的 就是 函数的定义了 { }

延津县17526047633: C++程序设计习题.试分别用非递归与递归函数的方式编写求a得n次幂的函数,函数原型为:float pow(float a -
澹绍奇谷: 非递归,一般可以使用循环来解决如下:float pow(float a, int n) { float rlt = 1; for(int i = 0;i < n;i++) { rlt*=a; } return rlt;} 递归则是:float pow(float a, int n) { if(n == 1) return a; else return a*pow(a,n-1); }

延津县17526047633: 编写函数fun,函数原型为:int fun(int a,int b,long*c). -
澹绍奇谷: #include "stdafx.h"#include int fun(int a,int b,int *c){ int k1,k2,k3,k4; k1=a%100/10; //a的十位 k2=a%10;...

延津县17526047633: C++上机考试题2. 请编写一个逆序创建单链表的函数.单链表的结点结构如下所示: -
澹绍奇谷: SLIST *create(void ) { SLIST *head=NULL,*p; char str[20];do { cin>>str; if(str=="") break; else { p=new SLIST; p->name=str; p->next=NULL; if(head==NULL) head=p; else { p->next=head;head=p;} } }while(true); return head; }-------------------------------...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网