读《C++ Builder 5编程实例与技巧简单》中的一个简单问题,20分

dingshuyang 2002-11-13 11:45:24
我想在机器上运行一下S02A的例子,我在C++builder上运行时显示:Must use C++ for STDCOMP.H
怎么解决?

S02A程序如下:

#include <conio.h>
#include <iostream.h> // 包含流的头文件

// 行参为指向const类型变量的指针
void display_c(const int * pi)
{
cout<<"display_c:"<<*pi<<endl;
}

// 行参为普通类型变量的指针
void display(int * pi)
{
cout <<"display:"<<*pi<<endl ;
}

#pragma hdrstop

#pragma argsused

int main(int argc, char* argv[])
{
// (1) const 类型变量
const int i1=1;
cout<<"i1: "<<i1<<endl;
// 下面一行错误,故屏蔽掉
// i1=3; // 错误:i1的内容不可以改变
// (2) 指向c o n s t类型变量的指针

int i2=2;
const int * pi2=&i2;
cout<<"*pi2: "<<*pi2<<"\ n";

// 下面一行错误,故屏蔽掉
// *pi2=3; // 错误:p i 2指向的内容不可以改变
*(int *)pi2=3; // 用“类型强制转换”可以解除对指针指向内容的约束
cout <<"*(int *)pi2: "<<i2<< endl;
// (3) const指针
int i3=3;
int i4=4;
int * const pi3=&i3;
*pi3=5;
cout<<"i3:"<<i3<<endl;
// 下面一行错误,故屏蔽掉
// pi3=&i4; // 错误:p i 3不可以指向不同的变量
// (4) 指向const内容的const指针
int i5=5;
int i6=6;
const int * const pi5=&i5;
// 下面两行错误,故屏蔽掉
// pi5=&i6; // 错误:p i 5不可以指向不同的变量
// *pi5=7; // 错误:p i 5指向的内容不可以改变
*(int *)pi5=8; // 用“类型强制转换”可以解除对指针指向内容的约束
cout<<"i5:"<<i5<<endl;
// (5) 参数传递时const的限制
display(&i6);
display_c(&i6);
const int i7=7;
// 下面一行错误,故屏蔽掉
// display(&i7); //const类型的数据地址不可以作为实参传递给
// 形参为非const类型指针的函数
display_c(&i7) ; //对于形参为c o n s t类型指针的函数则可以
getch(); // 目的是让用户看清输出的结果
return 0;
}
...全文
36 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanque 2002-11-13
  • 打赏
  • 举报
回复
我运行了没问题,大概是你CB有问题,缺那个头文件吧?
因为iostream.h 里有这样一句:#include <stdcomp.h>
你看看你CB的Include目录下是否存在stdcomp.h
dingshuyang 2002-11-13
  • 打赏
  • 举报
回复
谢谢,我现在编译通过了
我按RUN,可是为什么看不到结果呢,怎样才能看到运行结果?

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧