| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1217 人关注过本帖
标题:程序有看不懂的地方
只看楼主 加入收藏
kuaisha
Rank: 2
等 级:论坛游民
帖 子:120
专家分:30
注 册:2016-8-3
结帖率:100%
收藏
 问题点数:0 回复次数:3 
程序有看不懂的地方

#include <stdio.h>
#define COLS 5
void twice(double ( * )[COLS], int );
void display(double (*)[COLS], int );

int main(void)
{
 double array[3][COLS] = { {1.1, 2.2, 3.3, 4.4, 5.5},
       {6.6, 7.7, 8.8, 9.9, 10.10},
       { 11.11, 12.12, 13.13, 14.14, 15.15} };
 puts("before:");
 display(array, 3);
 twice(array, 3);
 puts("\nafter:");
 display(array, 3);

    return 0;
}  

void twice(double ( *p )[COLS], int rows)//在这个自定义函数中(*p)是什么意思?是变量名还是列?
{
 int i,j;
 for(i=0;i<rows;i++)
  for (j=0; j<COLS; j++)
   p[i][j] = 2* p[i][j];
}

void display(double ( *p )[COLS], int rows)
{
 int i,j;
 for(i=0;i<rows;i++)
 {
  for (j=0; j<COLS; j++)
   printf("%g\t",p[i][j]);//数组名不是array吗,为什么它的是p,而且还可以输出?
  printf("\n");
 }
}
搜索更多相关主题的帖子: void double int display array 
2017-12-02 22:18
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
以下是引用kuaisha在2017-12-2 22:18:25的发言:
void twice(double ( *p )[COLS], int rows)//在这个自定义函数中(*p)是什么意思?是变量名还是列?
{
 int i,j;
 for(i=0;i<rows;i++)
  for (j=0; j<COLS; j++)
   p[j] = 2* p[j];
}

void display(double ( *p )[COLS], int rows)
{
 int i,j;
 for(i=0;i<rows;i++)
 {
  for (j=0; j<COLS; j++)
   printf("%g\t",p[j]);//数组名不是array吗,为什么它的是p,而且还可以输出?
  printf("\n");
 }

1、( *p )[COLS] 也可表示为 p[][COLS]
2、p是函数的一个参数,是一个数组类型,可以用来处理相同类型的array数组
2017-12-03 05:18
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
收藏
得分:0 
C语言中数组名就是该数组首元素地址,
而作为函数参数的数组名p是一个指针变量,在函数调用时用于保存该地址。
所以,x[i]等效于*(x+i),p[i][j]等效于*(p+i*COLS+j),都是合法的。
C程序的理解不能停留在表面,需要深入到存储器层面。
2017-12-03 16:33
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
printf("%g\t",p[j]);//数组名不是array吗,为什么它的是p,而且还可以输出?
这个p是子函数里的,就像你在论坛里叫kuaisha,到QQ里面也许叫:张三,但都指的是你。
2017-12-03 17:26
快速回复:程序有看不懂的地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016461 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved