作业帮 > 综合 > 作业

在C++中, col 是什么意思?怎么用?

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 16:10:09
在C++中, col 是什么意思?怎么用?
在C++中, col 是什么意思?怎么用?
#include <stdio.h>
//首先我猜测了col = column 纵队的意思 row 行,排的意思
int *seek(int (*pnt_row)[3]) //这是一个数组,数组的容量是3,元素是指针
{
int i=0,*pnt_col;
pnt_col=*(pnt_row+1); //pnt_row是指向参数中数组的第一个元素的指针 +1表示指向第二个元素
//pnt_col表示参数第二个元素.pnt_col则为指向的指针
for(;i<3;i++)
if(*(*pnt_row+i)>60) //循环 pnt_row依然是指向的指针 +i并在外面用*表示数值依次取 55 65 75
{ //如果这个数字大于60 那么把 就把整个数组的指针赋值给pnt_col
pnt_col=*pnt_row;
break; //然后直接跳出
}
return(pnt_col); //然后返回这个数组的指针 所以此时返回的是指向的指针
}
void main ()
{
static int grade[3][3]=,}; //定义一个二维数组并初始化数值
int i,j,*pointer;
for(i=0;i<3;i++)
{
pointer=seek(grade+i); //grade此时指向的是
//pointer此时应该是指向的指针
if(pointer==*(grade+i)) //当此时pointer和grade+i就是传递给seek的指针指向的指针相同则执行下面的程序
{
for(j=0;j<3;j++) printf("%d ",*(grade+j)); //因为grade 是指针的指针
//所以这里的输出也是指针的值而不是指针指向的值
//循环的意思输出该指针指向的数组的3个成员的储存位置(指针的值)
printf("\n"); //
} //注意上面"%d "这里有个空格 当输出三次之后换行
}
//while(1); //这个是故意让程序停留在这里
}
//总结
/*
如果我们直接运行:
11104256 11104268 11104280
11104256 11104268 11104280
11104256 11104268 11104280
请按任意键继续...
不同的机器不同的时间运行结果都不一样.
因为每个子数组的成员都有大于60的,所以一定会输出每个数据的指针.
如果我们把第一个数组改成就可以看到只会输出两组:
14118912 14118924 14118936
14118912 14118924 14118936
请按任意键继续...
有的人会说为什么每一列都是一样的.
因为针对i的for循环来说,其内部的变量都是临时的,每循环一次都会分配空间and释放空间,
而对于一个运行中的程序,相同的数据成员构成,其存储位置大多数情况下都是一样的.所以每一列才会相同.
*/
补充:这个程序太妖了.
实际运用中很少会用这么复杂的程序吧.
我其实也是个学生,我也是菜鸟,
contact我
共同学习共同进步.