标签:
1 以前以为memset是给一个数组赋初值,实际上呢?
void *memset(void *s, int ch, unsigned n);
将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,其返回值为指向S的指针。
所以如果这样
int array[5] = {1,4,3,5,2}; for(int i = 0; i < 5; i++) cout<<array[i]<<" "; cout<<endl; memset(array,0,5*sizeof(int)); for(int k = 0; k < 5; k++) cout<<array[k]<<" "; cout<<endl;
输出结果是
1 4 3 5 2
0 0 0 0 0
但是如果这样
int array[5] = {1,4,3,5,2}; for(int i = 0; i < 5; i++) cout<<array[i]<<" "; cout<<endl; memset(array,1,5*sizeof(int));// 注意 这里与上面的程序不同 for(int k = 0; k < 5; k++) cout<<array[k]<<" "; cout<<endl;
输出结果就是
1 4 3 5 2
fill 的头文件是<iostream> 命名空间是std; 用法: eg: #include<iostream> using namespace std; int main() { char s[100]; fill(s,s+100,‘a‘); for(int i=0;i<100;i++) cout<<s[i]; cout<<endl; system("pause"); }
标签:
原文地址:http://www.cnblogs.com/yxzfscg/p/4472449.html