码迷,mamicode.com
首页 > 编程语言 > 详细

数组、字符串在指针和函数中的一些经验总结

时间:2014-12-06 21:31:09      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   bs   ad   as   nbsp   har   ca   字符串   

这篇主要是记录一下今天下午的坑和教训。

1.对于多维数组,在函数原型声明的形式是 void funct(int arr[ ][10]) 或 void funct (int (*arrp)[10]),后面的数字10必须要指定。不能以 void funct( int arr[ ] [ ]) 或 void funct (int **arr)等其他形式来声明带多维数组参数的函数原型。

而数组在首次声明时必须要指定维数,如 int arr[2]; 不能是 int arr[ ]。除非是后面带初始化的数,如 int arr[ ]={1,2,3}; 多维数组的初始化必须是 int darr[2][3]={ {1,2,3},{4,5,6}};

2.对于字符串,其初始化是以数组形式或者指针形式,如 char *c="good"; 或者 char c[ ] = "good"; 或者 char c[5]="good"; 多维字符串同样可以用数组或指针形式初始化和声明。如 声明 char **carr; 或 char * carr[2]; 或 char carr[2][3]; 若后面带初始化的数,也可以 char *carr[2]={"as","ad"};

以数组形式声明和初始化的多维字符串,它在函数原型里的形式是 void funct(char arr[ ][10]) 或 void funct(char (*arrp)[10]),与上面的多维数组相同。

以指针形式声明和初始化的多维字符串,它在函数原型里的形式是 void funct(char **arr) 或 void funct(char *arr[ ]),这里面是因为arr[ ]相当于*arr。

 

总的来说,以数组形式声明和初始化的多维变量,在函数中它的类型是 int * [10]。而以指针形式声明和初始化的字符串,在函数中它的类型是int **。

数组、字符串在指针和函数中的一些经验总结

标签:ar   sp   bs   ad   as   nbsp   har   ca   字符串   

原文地址:http://www.cnblogs.com/weili-wu/p/4148711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!