c语言memset函数用法(memset清空字符串)

admin 528 0

大家好,今天给各位分享c语言memset函数用法的一些知识,其中也会对memset清空字符串进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

一、c语言中void和int类型函数的定义,急!!!

1、中文翻译为“无类型”。常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明。

2、void的字面意思是“无类型”,void*则为“无类型指针”,void*可以指向任何类型的数据。

3、int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

4、在编程语言(C、C++、C#、Java等)中,常用于定义整数类型变量的标识符。

5、规则一:如果函数没有返回值,那么应声明为void类型。

6、在C语言中,凡不加返回值类型限定的函数,就会被编译器作为返回整型值处理。但是许多程序员却误以为其为void类型。

7、规则二:如果函数无参数,那么应声明其参数为void。

8、按照ANSI(American National Standards Institute)标准,不能对void指针进行算法操作。

9、规则四:如果函数的参数可以是任意类型指针,那么应声明其参数为void*

10、典型的如内存操作函数memcpy和memset的函数原型分别为:

11、void* memcpy(void*dest, const void*src,size_tlen);

12、void* memset( void* buffer, int c, size_t num);

13、规则五:void不能代表一个真实的变量

二、c语言中关于sscanf函数的运用及%n的用法

while(sscanf(p,"%d%n",&n,&wei)==1){

scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘)读取输入的信息。可以读入任何固有类型的数据并自动把数值变换成适当的机内格式。

scanf()函数返回成功赋值的数据项数,出错时则返回EOF。

用空白符结尾时,scanf会跳过空白符去读下一个字符,所以必须再输入一个数。这里的空白符包括空格,制表符,换行符,回车符和换页符。所以如果用scanf("%d",&a)也会出现同样的问题。

三、c语言createfile函数用法

LPCTSTRlpFileName,//指向文件名的指针

DWORDdwDesiredAccess,//访问模式(写/读)

LPSECURITY_ATTRIBUTESlpSecurityAttributes,//指向安全属性的指针

DWORDdwCreationDisposition,//如何创建

DWORDdwFlagsAndAttributes,//文件属性

HANDLEhTemplateFile//用于复制文件句柄

lpFileName String要打开的文件的名字

dwDesiredAccess Long如果为 GENERIC_READ表示允许对设备进行读访问;如果为 GENERIC_WRITE表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息

dwShareMode Long,零表示不共享; FILE_SHARE_READ和/或 FILE_SHARE_WRITE表示允许对文件进行共享访问

lpSecurityAttributes SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话)

dwCreationDisposition Long,下述常数之一:

CREATE_NEW创建文件;如文件存在则会出错

CREATE_ALWAYS创建文件,会改写前一个文件

OPEN_EXISTING文件必须已经存在。由设备提出要求

OPEN_ALWAYS如文件不存在则创建它

TRUNCATE_EXISTING讲现有文件缩短为零长度

dwFlagsAndAttributes Long,一个或多个下述常数

FILE_ATTRIBUTE_ARCHIVE标记归档属性

FILE_ATTRIBUTE_COMPRESSED将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式

FILE_ATTRIBUTE_HIDDEN隐藏文件或目录

FILE_ATTRIBUTE_READONLY文件为只读

FILE_ATTRIBUTE_SYSTEM文件为系统文件

FILE_FLAG_WRITE_THROUGH操作系统不得推迟对文件的写操作

FILE_FLAG_OVERLAPPED允许对文件进行重叠操作

FILE_FLAG_NO_BUFFERING禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块

FILE_FLAG_RANDOM_ACCESS针对随机访问对文件缓冲进行优化

FILE_FLAG_SEQUENTIAL_SCAN针对连续访问对文件缓冲进行优化

FILE_FLAG_DELETE_ON_CLOSE关闭了上一次打开的句柄后,将文件删除。特别适合临时文件

也可在Windows NT下组合使用下述常数标记:

SECURITY_ANONYMOUS,SECURITY_IDENTIFICATION,SECURITY_IMPERSONATION,SECURITY_DELEGATION,SECURITY_CONTEXT_TRACKING,SECURITY_EFFECTIVE_ONLY

hTemplateFile Long,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性

hTemplateFile Long,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性

INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS

HANDLEhOpenFile=(HANDLE)CreateFile(L"E:\\a.text",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);

if(hOpenFile==INVALID_HANDLE_VALUE)

MessageBoxA(NULL,"Cannotopenthefile","Playwav",MB_OK);

fileSize=GetFileSize(hOpenFile,NULL);

pBuffer=(CHAR*)malloc(fileSize);

ReadFile(hOpenFile,pBuffer,fileSize,&RSize,NULL);

//可将pBuffer显示在某区域或写入另一个文件来检查读出是否正确

//可将pBuffer显示在某区域或写入另一个文件来检查读出是否正确

memset(szPath,0,sizeof(szPath));

HANDLEhOpenFile=(HANDLE)CreateFile(szPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);

if(hOpenFile==INVALID_HANDLE_VALUE)

MessageBoxA(NULL,"Cannotopenthefile","Playwav",MB_OK);

fileSize=GetFileSize(hOpenFile,NULL);

pBuffer=(CHAR*)malloc(fileSize);

ReadFile(hOpenFile,pBuffer,fileSize,&RSize,NULL);

四、c语言中怎么把一维数组初始化为全零啊,不用循环

如果只对数组的一部分进行初始化,则编译器将把其他元素设置为0。因此,当只将第一个元素初始化为0时,编译器会自动将其他元素设为0(就像前一句说的那样)。

3.用memset函数在程序开始时初始化数组。比如:

memset()函数原型是extern void*memset(void*buffer, int c, int count) buffer:为指针或是数组,c:是赋给buffer的值,count:是buffer的长度。

函数解释:将s中当前位置后面的n个字节(typedef unsigned int size_t)用 ch替换并返回 s。

memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法,它通常为新申请的内存做初始化工作。

五、c语言中void什么意思具体怎么用

void的字面意思是“无类型”,void*则为“无类型指针”,void*可以指向任何类型的数据。void只有“注释”和限制程序的作用。void的作用在于对函数返回的限定和对函数参数的限定。

其中p1= p2语句会编译出错,提示“'=': cannot convert from'int*' to'float*'”,必须改为:p1=(float*)p2;

而void*则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:

void类型在c开发中常见的用法有2种:

1、作为函数的返回值,如void add(int x,int y);表示该函数吴返回类型,不需要返回值。

2、使用void*指针来使用,比如作为函数的参数类型,如: int max(void* param);-->此时的void*表示可以使用任何类型的参数进行转换。如

typedef struct{int a;}str;//结构体

参考资料来源:百度百科——void

六、memset(num,0,sizeof(num));什么意思

1、memset是个函数,百它在string.h头文件中有声明。它有三个参数,一度是所要set的首地址,二是set的值问,三是set的字节数。

2、string.h在c语言和c++语言中都被广泛的使用,但是具体情况不是很一样。由于传统的C++脱胎于C,所以传统C++中于C语言中对本词条的用法差不多,经过美国标准化组织修改标准化后的标准C++中,定义则是大不相同。

七、c语言中 menset有什么用

1、'&&word!='\t'&&word!='\n')这个表达式

2、'和'\t'和'\n'结果就会等于true(真),但只要上述三个条件有一个不满足结果就会等于false(假),并且这个运算符是从左至右结合的,如果第一个word的值等于'

3、'表示条件不满足,那么后面的两个条件就会直接被过滤,不会被执行。

4、'!='\t'!='\n'这种表达式是一种错误的表达式,在c语言中多个条件表达式连接要使用逻辑语句。你这样写,那么程序只会判断word是否等于'

5、',其它后面的两个值是不会被判断的,因为程序不知道是要和谁进行判断。

好了,文章到此结束,希望可以帮助到大家。