十二、c++指针 一级指针和二级指针
2017-11-26 21:14
190 查看
指针是一种非常方便灵活的东西,原来学c的时候学指针的时候记得课本一堆乱七八糟的注意事项,其实如果只是做做机试题的话根本没那么多用法,就会最基本就行
比如一个例子:
求一个n*4矩阵里面存放的最大元素,
如果知道具体数字,最为初学者就直接两个for循环找到最大的值了。其实这样也不难,多了一个一维大小是未知而已。#include <iostream>
using namespace std;
int maxvlaue(int array[][4],int k);//注意一下这种忽略可以,但是不能array[4][],
int main()
{
int a[3][4]={{1,3,4,6},{2,4,6,8},{15,17,34,12}};//声明的方法学一下
cout<<maxvlaue(a,3)<<endl;
return 0;
}
int maxvlaue(int a[][4],int n){
int i,j,max=a[0][0];
for(i=0;i<n;i++){
for(j=0;j<4;j++){
if(max<a[i][j]) max=a[i][j];
}
}
return(max);
}
现在要求用指针做的话怎么做呢:
#include <iostream>
using namespace std;
int max_value(int(*array)[4],int k);//二级指针
int max_value1(int*arr,int n);//一级指针
int main()
{
int a[3][4]={{1,3,6,7},{2,4,6,8},{15,17,34,12}};
int *b=(int *)a;
cout<<max_value(a,3)<<endl;
cout<<max_value1(b,3*4)<<endl;
return 0;
}
int max_value(int(*array)[4],int n){
int i,j,max=array[0][0];
for(i=0;i<n;i++){
for(j=0;j<4;j++){
if(max<array[i][j])max=array[i][j];//这个指针只看外界的大的维度,每个分量里面是啥它不惯
}
}
return(max);
}
int max_value1(int*arr,int n){
int i,max=arr[0];
for(i=0;i<n;i++){
if(max<arr[i])max=arr[i];//这个12个都比,当成一维做
}
return(max);
}
4000
比如一个例子:
求一个n*4矩阵里面存放的最大元素,
如果知道具体数字,最为初学者就直接两个for循环找到最大的值了。其实这样也不难,多了一个一维大小是未知而已。#include <iostream>
using namespace std;
int maxvlaue(int array[][4],int k);//注意一下这种忽略可以,但是不能array[4][],
int main()
{
int a[3][4]={{1,3,4,6},{2,4,6,8},{15,17,34,12}};//声明的方法学一下
cout<<maxvlaue(a,3)<<endl;
return 0;
}
int maxvlaue(int a[][4],int n){
int i,j,max=a[0][0];
for(i=0;i<n;i++){
for(j=0;j<4;j++){
if(max<a[i][j]) max=a[i][j];
}
}
return(max);
}
现在要求用指针做的话怎么做呢:
#include <iostream>
using namespace std;
int max_value(int(*array)[4],int k);//二级指针
int max_value1(int*arr,int n);//一级指针
int main()
{
int a[3][4]={{1,3,6,7},{2,4,6,8},{15,17,34,12}};
int *b=(int *)a;
cout<<max_value(a,3)<<endl;
cout<<max_value1(b,3*4)<<endl;
return 0;
}
int max_value(int(*array)[4],int n){
int i,j,max=array[0][0];
for(i=0;i<n;i++){
for(j=0;j<4;j++){
if(max<array[i][j])max=array[i][j];//这个指针只看外界的大的维度,每个分量里面是啥它不惯
}
}
return(max);
}
int max_value1(int*arr,int n){
int i,max=arr[0];
for(i=0;i<n;i++){
if(max<arr[i])max=arr[i];//这个12个都比,当成一维做
}
return(max);
}
4000
相关文章推荐
- 【转】C++函数参数传递中的一级指针和二级指针【【**】】
- C++一级指针和二级指针做参数传递讲解
- C语言 一级指针与二级指针详细介绍
- c语言中一级指针和二级指针做函数参数
- C 结构体嵌套一级指针 二级指针 动态分配内存
- 【C语言提高40】结构体套一级指针和二级指针
- 有关一级指针和二级指针的归纳总结
- C++ 指针、二级指针、引用传递、值传递综合示例
- C语言一级指针、二级指针、数组作为参数传递需要注意的若干问题
- 内存申请与一级二级指针
- C和C++中const的区别,引用,一级指针和const组合
- C语言指针系列 - 一级指针.一维数组,二级指针,二维数组,指针数组,数组指针,函数指针,指针函数
- 内存申请与一级二级指针
- 一级指针与二级指针的使用,以及使用二级指针的场合
- 一级指针,二级指针在函数调用传址问题。在子函数中分配内存。
- 一级指针和二级指针的函数调用
- 结构体成员内部含有一级指针和二级指针的情况
- Hibernate学习——(十二)Hibernate缓存机制(一级、二级、查询)
- C语言中,一级指针,二级指针,数组,一位数组指针,二位数组指针浅谈
- C--struct中一级指针与二级指针练习