可以在函数中借用sizeof运算符,来获取数组大小。
创新互联-专业网站定制、快速模板网站建设、高性价比龙沙网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式龙沙网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖龙沙地区。费用合理售后完善,十载实体公司更值得信赖。
1
获取数组a整体占用空间可以使用
sizeof(a)
该值为这个数组占用的总内存值,单位为字节。
2
获取数组元素个数可以用
sizeof(a)/sizeof(a[0])
该值为数组开辟的元素个数。
问题1:
函数类型是int,应该加上
return
表达式;
问题2:
用主函数中的a,b,c当然是可以的,他们都是局部变量,在不同函数里边同名是没关系的
void表示空类型,void型的函数没有返回值,当前的main函数不就没有返回值吗?所以用void
附加问题:
用数组存储,然后进行排序
1、首先需要准备一个空白的c语言文件,这里是用vs2017软件,在C语言文件中引入C语言的头文件,新建一个max函数用来判断大小,最后设置一个main主函数:
2、max函数的逻辑是判断x和y两个参数那个数大,大的就把值赋给z变量,最后返回z变量的值。主函数中将用户输入的数通过scanf函数传递给变量a、b,最后调用max函数判断大小并输出即可:
3、最后编译运行,打开的提示符中,输入两个数,回车之后程序就会把较大的数打印出来了。以上就是用C语言比较两个数的方法:
1.MFC中的方法:(C++)
CFileStatus status;
CFile::GetStatus("D:\\test.txt",status);
long lSizeOfFile;
lSizeOfFile = status.m_size;
lSizeOfFile的值就是D:\\test.txt文件的大小
2.标准C获得文件大小的5种方法
(注意:"__FILE__"指的是当前文件,你可以改为有效路径的目标文件,比如"D:\\test.txt")
#include "stdafx.h"
#include "stdio.h"
#include sys/stat.h
#include io.h
#include FCNTL.H
int getfilesize()
{
int iresult;
struct _stat buf;
iresult = _stat(__FILE__,buf);
if(iresult == 0)
{
return buf.st_size;
}
return NULL;
}
int getfilesize01()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _filelength(fp);
//return NULL;
}
int getfilesize02()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize03()
{
int fp;
fp=_open(__FILE__,_O_RDONLY);
if(fp==-1)
return NULL;
return _lseek(fp,0,SEEK_END);
//return NULL;
}
int getfilesize04()
{
FILE *fp;
if((fp=fopen(__FILE__,"r"))==NULL)
return 0;
fseek(fp,0,SEEK_END);
return ftell(fp); //return NULL;
}
int getfilesize05()
{
FILE *fp;
char str[1];
if((fp=fopen(__FILE__,"rb"))==NULL)
return 0;
for(int i = 0;!feof(fp);i++)
{
fread(str,1,1,fp);
}
return i - 1; //return NULL;
}
int main(int argc, char* argv[])
{
printf("getfilesize()=%d\n",getfilesize());
printf("getfilesize01()=%d\n",getfilesize01());
printf("getfilesize02()=%d\n",getfilesize02());
printf("getfilesize03()=%d\n",getfilesize03());
printf("getfilesize04()=%d\n",getfilesize04());
printf("getfilesize05()=%d\n",getfilesize05());
return 0;
}
/* 解题思路: 以只读方式打开某一文件,然后将文件指针定位在文件结尾的位置,利用ftell函数返回指针的在文件中的相对位置即可。
*/
#include "stdio.h"
main()
{ FILE *fp; /*定义文件指针*/
long cnt; /*定义变量cnt用来存储文件大小数据*/
fp=fopen("c:\\1.txt","r"); /*此处请填写测试文件的地址,并以只读("r")方式打开文件*/
if( fp==NULL ) /*如果打开的文件不存在,则退出*/
{ exit(0);
printf("文件打开失败!");
}
fseek(fp,0L,SEEK_END); /*利用fseek函数将指针定位在文件结尾的位置*/
cnt=ftell(fp); /*利用ftell函数返回指针相对于文件开头的位置,以字节计算*/
printf("文件所占的字节数为%ld个\n",cnt); /*进行输出*/
}
buf是一个大小为1024的字符数组,存在于栈上,大小固定的;而p只是一个指向字符数组的指针,大小当然是4;buf2也只是一个字符指针,指向堆上的一片内存区