这里关于指针以及数组的一些基本知识我就不讲了。写这篇文章主要是为了加强我对于C语言指针以及地址的理解。之前在写一道算法题时,二维数组我们不是用行列抽象表示吗,我需要用到每行的列数,并且每行的列数不固定,并且如果元素等于0的话,该行结束,这时候我知道我需要写一个函数来帮我求的每行的列数了。具体我们先看下带代码。
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
int a[N][N];
int n;
int len(int *l)
{
int sum=0;;//记录数组的长度
for(int i=0; ;i++){
if(l[i]==0)break;
sum++;
}
return sum;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++){
for(int j=0;j<i+3;j++){
a[i][j]=j+1;
}
}
cout<<"数组a[2]的元素个数="<<len(a[2]);
return 0;
}
虽然我用的是c++写的,但是和C语言差不多,不就输入输出不一样吗,用到的指针知识还是一样的。