问题描述
- 关于C语言的指针数组的问题
-
老师说过 传递一个二维数组时 必须指定 第二维的 个数 才能正确索引 数组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语言数组与指针的问题
----------------------
解决方案三:
应该是char*才能这样传递,因为把二维数组当字符串数诅来用。用null就可以判断字符串结尾
解决方案四:
二维数组的实质其实是一个一维数组,例如 int a[2][3];其实可以这样理解该二维数组的数据类型为 int ;我们可以这样写 type a[2];其中type 为 int [3]
当我们遍历二维数组的时候,每移动一个行坐标,它都会扫描type个字节。
解决方案五:
调用函数,实际上任何参数的传递都是指针(即地址)。
时间: 2024-11-01 03:09:21