#include "stdio.h"
#include <string.h>
#include <conio.h>
struct sample_struct
{
char csName[16];
int iSeq;
int iType;
}stTest;
void main(){
char* s = "Golden Global View";
//memset(s, 'G', 6);
printf("%s", s);
//memset() 函数常用于内存空间初始化
char str[100];
memset(str, 0, 10);
char a[100];
memset(a, '0', sizeof(a));
// 我们用memset给str初始化为{ 1, 1, 1, 1, 1, 1, 1, 1 },
//这样是不对的 因为int是4个字节 8个俩个字节 所以就初始化了0和1
//在memset使用时要千万小心,在给char以外的数组赋值时,只能初始化为0或者-1。因为在计算机里,0的二进制都是0,-1的二进制都是1。
int num[8];
memset(num, 1, 8);
//void与void*的区别:
//void真正发挥的作用在于:(1)对函数返回的限定; (2)对函数参数的限定。
//void*可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值,因此还可以用void指针来作为函数形参,这样函数就可以接受任意数据类型的指针作为参数。例如:
void * memcpy(void *dest, const void *src, size_t len);
void * memset(void * buffer, int c, size_t num);
//一般情况下,清空stTest的方法:
//用memset就非常方便:
stTest.csName[0] = '/0';
stTest.iSeq = 0;
stTest.iType = 0;
memset(&stTest, 0, sizeof(struct sample_struct));
//strcpy
//原型:extern char *strcpy(char *dest, char *src);
//用法:#i nclude
//功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
//说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
//返回指向dest的指针。
//memcpy
//原型:extern void *memcpy(void *dest, void *src, unsigned int count);
//用法:#i nclude
//功能:由src所指内存区域复制count个字节到dest所指内存区域。
//说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
//memset
//原型:extern void *memset(void *buffer, int c, int count);
//用法:#i nclude
//功能:把buffer所指内存区域的前count个字节设置成字符c。
//说明:返回指向buffer的指针。
getchar();
}
memset
最新推荐文章于 2019-01-23 21:01:40 发布