![]() |
#2
funyh2502014-05-10 21:24
|

//编写一个使用指针作为形参的函数,实现对内存空间中连续n个元素的求和运算功能
#include <iostream>
using namespace std;
void sum(int *p,int n)
{
int s=0;
for(int i=0;i<n;i++)
s+=*p++;
}
void main()
{
int a[4]={2,3,4,5};
int *p=a;
int n=sizeof(a)/sizeof(*a);
cout<<sum(*p,n)<<endl;
system ("pause");
}
1>------ 已启动生成: 项目: file1, 配置: Debug Win32 ------
1>生成启动时间为 2014/5/10 17:18:38。
1>InitializeBuildStatus:
1> 正在对“Debug\file1.unsuccessfulbuild”执行 Touch 任务。
1>GenerateTargetFrameworkMonikerAttribute:
1>正在跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件相对于输入文件而言都是最新的。
1>ClCompile:
1> 指针连续求和.cpp
1>指针连续求和.cpp(15): error C2664: “sum”: 不能将参数 1 从“int”转换为“int *”
1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>
1>生成失败。
1>
1>已用时间 00:00:00.56
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
才学C++,出现这个错误不知道怎么解决啊,我想知道这个错在哪里了,哪位帮我解释一下那个无法转换到底什么意思哦,谢谢
#include <iostream>
using namespace std;
void sum(int *p,int n)
{
int s=0;
for(int i=0;i<n;i++)
s+=*p++;
}
void main()
{
int a[4]={2,3,4,5};
int *p=a;
int n=sizeof(a)/sizeof(*a);
cout<<sum(*p,n)<<endl;
system ("pause");
}
1>------ 已启动生成: 项目: file1, 配置: Debug Win32 ------
1>生成启动时间为 2014/5/10 17:18:38。
1>InitializeBuildStatus:
1> 正在对“Debug\file1.unsuccessfulbuild”执行 Touch 任务。
1>GenerateTargetFrameworkMonikerAttribute:
1>正在跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有输出文件相对于输入文件而言都是最新的。
1>ClCompile:
1> 指针连续求和.cpp
1>指针连续求和.cpp(15): error C2664: “sum”: 不能将参数 1 从“int”转换为“int *”
1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换
1>
1>生成失败。
1>
1>已用时间 00:00:00.56
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
才学C++,出现这个错误不知道怎么解决啊,我想知道这个错在哪里了,哪位帮我解释一下那个无法转换到底什么意思哦,谢谢