已有55人关注
C++入门到精通第142页示例!
发表在C++答疑区 2017-04-17
是否精华
版块置顶:

#include<iostream>

using namespace std;

#define N 4  //宏是什么玩意,是从C继承过来的吗?

void mix(int (*a)[N],int m)//第一个参数是个什么类型,

{                         //为什么要加括号??

int value,i,j;

for(i=0;i<m;i++)

{

value=*(*(a+i));

for(j=0;j<N;j++)

if(*(*(a+i)+j)<value)

value=*(*(a+i)+j);

cout <<"line " << i ;

cout <<":the mix number is " << value << endl;//输出最小值

}

}

void main()

{

int a[3][N],i,j;

int (*p)[N];     //这个加括号是为了与自定义函数参数保持一致吗?

p=&a[0];

cout << "please input:" << endl;

for(i=0;i<3;i++)

for(j=0;j<N;j++)

cin >> a[i][j];

mix(p,3);

}


2017-04-17 15:05:45编辑
分享到:
精彩评论 5
李木子
学分:2954 LV11
2017-04-17
沙发

你好:

    本身c和c++就是相通的,在c++中也有对宏的定义,宏定义是预处理的一种,例如这个程序的#define N 4表示在程序中N代替4,在编译预处理时,遇到N就自动用4来代替。(*a)[n]表示a是数组的指针;而下面的(*p)[N]是为了一致,在调用函数时,可以作为函数第一个参数。


quwenhui
学分:166 LV4
2017-04-18
板凳

李木子 发表于2017-04-17 16:12

你好:

    本身c和c++就是相通的,在c++中也有对宏的定义,宏定义是预处理的一种,例如这个程序的#define N 4表示在程序中N代替4,在编译预处理时,遇到N就自动用4来代替。(*a)[n]表示a是数组的指针;而下面的(*p)[N]是为了一致,在调用函数时,可以作为函数第一个参数。


360截图-59386171.jpg

主函数里面为指针初始化的时候,只能用示例里面的一种方式吗,为什么我这种方式会生成失败,报告的错误我理解起来很吃力.

李木子
学分:2954 LV11
2017-04-18
地板

quwenhui 发表于2017-04-18 09:19

360截图-59386171.jpg

主函数里面为指针初始化的时候,只能用示例里面的一种方式吗,为什么我这种方式会生成失败,报告的错误我理解起来很吃力.

你好:

   按照你的程序,我运行时没有错误呀。

2.png


quwenhui
学分:166 LV4
2017-04-18
4L

李木子 发表于2017-04-18 11:50

你好:

   按照你的程序,我运行时没有错误呀。

2.png


在图片里第21行有变动,报告的错误让我思路混乱。

李木子
学分:2954 LV11
2017-04-18
5L

quwenhui 发表于2017-04-18 12:56

在图片里第21行有变动,报告的错误让我思路混乱。

你好:

   发现了有改动了,出现的错误就是类型不匹配,无法传值。你要理解p=&a[0]的意义.

首页上一页 1 下一页尾页 5 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照