本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。
本文已参与 ⌈新人创作礼⌋ 活动,一起开启掘金创作之路。
十、存储类别与内存管理
strlen()函数用于统计字符串的长度
strcat()函数用于接受两个字符串作为参数。
strncat()拼接两个字符串,防止溢出。
strcmp()用于字符串比较。
strncmp()比较字符串中的字符,直到发现不同的字符为止。
strcpy()/strncpy()字符串拷贝函数。
itoa()和ftoa()分别把整数和浮点数转换成字符串。可用sprintf()替代。
静态变量static:该变量在内存中原地不动
外部变量extern:针对同一个变量都引用同一个定义在函数外部的变量
rand():伪随机数生成器
rand0():生成随机数
srand1():重置种子
分配内存:malloc()和free(),调用时需要引入#include <stdlib.h>,此外还有calloc()函数分配内存
volatile限定符告知计算机,代理可以改变该变量的值
restrict关键字允许编译器优化某部分代码以更好地支持计算
十一、文件
打开文件的函数代码如下:
FILE *fopen(const char * filename,const char *mode)
关闭文件函数:
int fclose(FILE *fp);
文件举例说明:
#include <stdio.h>
int main()
{
FILE *p=0;
if((fp=fopen("/a/b.c","r"))==0)
{
printf("文件打开失败");
return -1;
}
printf("fp=%p\n",fp);
fclose(fp);
}
向文件中写入数据:
int fprintf(FILE *fp,const char *format,……);
#include <stdio.h>
int main()
{
int i=0;
FILE *p=0;
fp=fopen("\a\b.c","w");
if(fp==0)
{
printf("失败");
return -1;
}
for(i=0;i<3;i++)
{
fprintf(fp,"This is the first num\n");
}
fclose(fp);
}
从文件中读取数据:
char *fgets(char *buf,int size,FILE *fp);
while(1)
{
memset(buf,0,sizeof(buf));
if(fgets(buf,301,fp)==0)
break;
printf("%s",buf);
}
二进制文件读写:
size_t fwrite(const void *ptr,size_t size,size_t nmemb,FILE *stream);
//ptr为内存区块指针
//size固定为1
//nmemb:表示打算写入数据的字节数
//fp:表示文件指针