memset()函数及其作用 assert 以及队列
作者:互联网
一.memset函数
memset()函数原型为extern void *memset(void *buffer , int c , int count)
buffer : 为指针或是数组
c:是赋给buffer的值
count:是buffer的长度
作用:
memset将指针变量buffer所指向的前count个字节的内存单元用一个整数‘c’替换,一般对较大的数组或结构体进行初始化
#include<stdio.h>
#include<string.h>
int main(void)
{
int i;
char str[10];
char *p=str;
memset(str,0,sizeof(str));
for(i=0;i<10;i++)
{
printf("%d\x20",str[i]);
}
printf("\n");
return 0;
}
二. assert
作用:如果它的条件返回错误,先向stderr打印一条出错信息,然后调用abort来终止程序执行。
缺点:频繁的调用会极大地影响程序的性能,增加额外的开销。
三. 队列
1. 队列概念
先进先出(FIFO:First In First Out), 只允许在队尾进行插入操作(入队或进队),在队首进行删除操作(出队或离队),空队列:不含任何元素的空表。
2. 顺序队列
设置两个指针 front 和 rear 分别指示队头元素和队尾元素的位置,设置队头指针指向队头元素,队尾指针指向队尾元素的下一个位置。
队列的顺序存储类型
typedef struct
{
int data[100];
int front,rear;
}Queue;
初始状态:队空:Queue.front==Queue.rear==0;
进队操作:队不满时,先将把值赋给队尾元素,将队尾指针+1
出队操作:队非空时,先删除队头元素,再将队头指针+1
注:Queue.rear==100 不能作为队满条件,因为队尾指针可能到了最尾端,但是队头指针可能不在初始位置,在队列中间,这时入队出现“上溢”,是假溢出。
标签:队尾,队头,队列,memset,assert,int,指针 来源: https://blog.csdn.net/m0_63188530/article/details/121762515