数组

挣扎中前行 2013-03-06 02:45:36
如何将二维数组当做参数,传入函数中填写数组,及形参该如何写?char (*)[32]这又表示的什么?

言简意赅的别把数组和指针的定义贴到这!
...全文
248 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
挣扎中前行 2013-03-25
  • 打赏
  • 举报
回复
引用 4 楼 zhao4zhong1 的回复:
电脑内存只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、……
大牛就是牛!
lyhml 2013-03-07
  • 打赏
  • 举报
回复
我个人为用指针。。。
ForestDB 2013-03-06
  • 打赏
  • 举报
回复
void foo(char a[][32], int cols) char (*)[32]表示一个指针,它指向一个有32个char的一维数组。
一根烂笔头 2013-03-06
  • 打赏
  • 举报
回复
给你举个例子吧

#include <stdio.h>

void function(char (*str)[10])
{
	int i;
	for (i = 0; i < 5; ++i)
	{
		printf("%s ", str + i);
	}
	putchar('\n');
}

int main(int argc, char ** argv)
{
	char (*str)[10];//声明一个二维数组指针
	char other[10] = "other";
	//str = other;	//cannot convert from 'char [10]' to 'char (*)[10]'
	char ch[5][10] = {"this","is","a","string"};
	str = ch;//(1)

	int i;
	for (i = 0; i < 5; ++i)
	{
		printf("%s ", str + i);
	}
	putchar('\n');

	function(str);
	function(ch);//效果相当于执行了(1)
	return 0;
}
wugui414 2013-03-06
  • 打赏
  • 举报
回复

#include <stdio.h>

void foo(char a[])
{
    // TODO ...
}

void foo1(char *a) // 数组做参数时,char a[] == char* a
{
    // TODO ...
}

int main(void)
{
    char a[] = "abcdef";
    char* b = "ghjklmn";
    foo(a);
    foo(b);

    foo1(a);
    foo1(b);
    return 0;
}

starytx 2013-03-06
  • 打赏
  • 举报
回复
看看main函数的形参就知道了 int _tmain(int argc, _TCHAR* argv[]) 第二个参数相当于就是char**
金刚葫芦娃 2013-03-06
  • 打赏
  • 举报
回复
楼主看一下. http://bbs.csdn.net/topics/60157289
赵4老师 2013-03-06
  • 打赏
  • 举报
回复
电脑内存只是一个一维二进制字节数组及其对应的二进制地址; 人脑才将电脑内存中的这个一维二进制字节数组及其对应的二进制地址的某些部分看成是整数、有符号数/无符号数、浮点数、复数、英文字母、阿拉伯数字、中文/韩文/法文……字符/字符串、函数、函数参数、堆、栈、数组、指针、数组指针、指针数组、数组的数组、指针的指针、二维数组、字符点阵、字符笔画的坐标、黑白二值图片、灰度图片、彩色图片、录音、视频、指纹信息、身份证信息…… 对于占用内存字节数较多的对象实例,用该对象实例的引用或指向该对象实例的指针传参。 为什么没人把整个互联网内容当函数参数传来传去呢?!
Athenacle_ 2013-03-06
  • 打赏
  • 举报
回复
数组在传入函数的时候会退化成指针。 一维数组就直接退化成指针,二维数组退化成一个指向一维数组的指针,如char (*)[32]
lin5161678 2013-03-06
  • 打赏
  • 举报
回复
>>如何将二维数组当做参数,传入函数中填写数组,及形参该如何写? 同#1所说的 传入一个指针 和 两个int 手动模拟比较灵活 >>char (*)[32]这又表示的什么? 这个是数组指针 指向char[32] 这个可以传入你想要的二维数组 但是 第一维必须是32个元素 如果函数只处理 char[1][32] char[2][32]....诸如此类的数组 那么 用char(*)[32]是一个不错的选择
图灵狗 2013-03-06
  • 打赏
  • 举报
回复
建议以一维数组的方式传入,例如: void func(char a[], int rows, int cols)
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧