老师说过 传递一个二维数组时 必须指定 第二维的 个数 才能正确索引 数组1维+1的位置
函数参数传递 都是写成这样 abc(int* array[10]) 但是看到main函数的 参数确是
int main(int argc, char* argv[], char* env[]) 这样写 能索引argv+1 的位置吗?
当然可以,C语言是一种简陋和原始的语言,它简陋的程度对于用惯了高级编程语言的人来说匪夷所思,比如你完全可以越界访问数组,至于结果如何,那就只有上帝知道了。
最近学数据结构,在学数组与指针之间的关系的时候,发现以前一直没理解的一个问题。
首先我们看看数组与指针的一些关系吧。如果我们定义一个数组int a[ ] = {1,1,2,3,5,8,},再把一个指针int *p = a;这句话我们该怎么理解呢?其实很简单,我们只要知道这个语句是定义了一个指向整型数组的指针变量p,并且p指向数组的首地址,后面的就迎刃而解了。而a代表的是数组的第一个元素的地址,我......
答案就在这里:C语言数组与指针的问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
应该是char*才能这样传递,因为把二维数组当字符串数诅来用。用null就可以判断字符串结尾
二维数组的实质其实是一个一维数组,例如 int a[2][3];其实可以这样理解该二维数组的数据类型为 int ;我们可以这样写 type a[2];其中type 为 int [3]
当我们遍历二维数组的时候,每移动一个行坐标,它都会扫描type个字节。
调用函数,实际上任何参数的传递都是指针(即地址)。