请教一个数组类型的问题!

彭辛乾 2011-12-09 06:43:09

#define MaxSize 10

typedef char DataType;

typedef struct
{
int key;
DataType data;
}DataNode;

//定义了一个数组类型。
typedef DataNode DataArray[MaxSize];

void main()
{
DataArray SortData;
//我想问的是这个SortData我应该是把它当作数组名还是一个指向一个数组的指针。SortData到底是什么。

F(SortData);
}


//在这里我希望用指针指向上面那个数组,去修改里面的值,下面的arr 是应该加*还是不加。
void F(DataArray arr)
{

}



...全文
147 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2011-12-09
  • 打赏
  • 举报
回复
目的是迷惑八路,结果。。。
vv587 2011-12-09
  • 打赏
  • 举报
回复
数组名不能说是指针.
它是一个常量地址.
指针是一种变量.
指针这种变量里可以保存地址
whitecarnation 2011-12-09
  • 打赏
  • 举报
回复
#include <stdio.h>
#define MaxSize 10

typedef char DataType[10];

typedef struct
{
int key;
DataType data;
}DataNode;

//定义了一个数组类型。
typedef DataNode DataArray[MaxSize];
void F(DataArray d);
void main()
{
DataArray n;
// n相当于一个有MaxSize个元素的数组,而数组的首地址等于数组名,等于数组的第一个元素的地址

for(int i=0;i<MaxSize;i++)
n[i].key=i;
F(n);
}

void F(DataArray d)
{
for(int i=0;i<MaxSize;i++)
printf("%d\n",d[i].key);

}
iamnobody 2011-12-09
  • 打赏
  • 举报
回复


#define MaxSize 10

typedef char DataType;

typedef struct
{
int key;
DataType data;
}DataNode;

//定义了一个数组类型。
typedef DataNode DataArray[MaxSize];

void main()
{
DataArray SortData;
//我想问的是这个SortData我应该是把它当作数组名还是一个指向一个数组的指针。SortData到底是什么。
//sortData 是一个数组名。数组名可以隐式转换成首元素的指针。你这里的声明与 DataNode sortData[MaxSize]是等效的。

F(SortData);//如果声明加了*这里就应该写成: F(&sortData);
}


//在这里我希望用指针指向上面那个数组,去修改里面的值,下面的arr 是应该加*还是不加。
void F(DataArray arr)//用数组作为参数会退化成指针,与DataNode *arr是一样的。如果加* 的话,就会变成指向数组的指针。指向数组的指针和指向数组元素的指针是不同的。
{

}





看看下面链接你就懂了
http://topic.csdn.net/u/20091123/11/0c03d2e2-0655-4634-8287-0e2315d889fc.html?83872
鲤鱼 2011-12-09
  • 打赏
  • 举报
回复
数组名和一个指向一个数组的指针有什么区别呢?数组名就是指向数组的指针
彭辛乾 2011-12-09
  • 打赏
  • 举报
回复

//能否说得更详细一点啊,或有什么资料介绍了这个,推荐一下!!!



dic_008 2011-12-09
  • 打赏
  • 举报
回复
数组类型作参数时已经退化成指针了
jixingzhong 2011-12-09
  • 打赏
  • 举报
回复
没有必要这么复杂化,typedef 定义了一个类型而已,就类似的看成普通的int等内置类型一样即可......
jixingzhong 2011-12-09
  • 打赏
  • 举报
回复
数组。
代码下载地址: https://pan.quark.cn/s/f772f44531a5 FFmpeg 是一款功能丰富的开源命令行软件,能够对多种类型的多媒体数据,涵盖音频及视频内容,进行操作。它具备多种能力,例如进行格式转换、合并不同媒体、分割文件、执行编码与解码处理、以及实现流媒体传输等。在此特定情境下,主要探讨如何运用 FFmpeg 来处理 MP4 文件的播放难题,特别是那些无法通过流式传输正常播放的文件。MP4 文件播放时可能遇到的障碍,可能是由播放器不兼容的编码方式、容器结构错误、元数据位置设置不当,或是缺少必要的流信息所导致。FFmpeg 能够协助我们识别并修正这些问题。 1. **针对 MP4 文件的检测与修复**:借助 FFmpeg 的 `-i` 参数,可以获取 MP4 文件的详细资料,例如: ``` ffmpeg -i problematic.mp4 ``` 若发现编码方式、时间轴或容器结构存在问题,可尝试对文件进行重新封装(remuxing)或重新编码(transcoding)。例如,通过简单的重新封装操作: ``` ffmpeg -i problematic.mp4 -c copy fixed.mp4 ``` 此指令将维持视频和音频流的原状,仅更换文件的容器格式。 2. **应对流传输挑战**:当文件无法以流方式播放时,通常是因为流信息未正确嵌入文件头部。FFmpeg 可用于解决该问题: ``` ffmpeg -i problematic.mp4 -movflags +faststart output.mp4 ``` ...

70,039

社区成员

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

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