加缓存的目的就是为了跑得快
空悬指针
int
* BuyMen(const int n
)
{
int
*ip
= (int
*)malloc(sizeof(int
)*n
);
(ip在栈区
)(malloc在堆区申请)(ip指向堆区控件)(可以被任何类型接受)
无类型指针 泛型指针 必须强转才能使用
return ip
;
}
int
main()
{
int
*p
= BuyMen(10);
free(p
);
return 0;
}
动态开辟二维数组
int
main()
{
int row
,col
;
cin
>>row
>>col
;
int sum
= row
* col
;
int
*p
= (int
*)malloc(sizeof(int
)*a
)
return 0;
}
```静态数组连续 动态数组不连续
释放不释放
生存周期
访问方式
开辟的堆栈
*(
*(s
+1))
*(
*(ar
+1))
ar
+1 和 s
+1 能力不同
s和ar类型不同
一个是一维指针
+1 一个是指向的数组加
1
运行内存 (虚拟内存)
适配层 适配器 操作硬件
文本文件 转化为ascii码值
二进制文件
适配层(windowsapi)
->驱动程序
文件 打开读写关闭
I/O操作
int
main()
{
int ar
[]={12,2,3,4,5,6,7,8};
int n
=sizeof(ar
)/sizeof(ar
[0]);
FILE *fp1
= fopen("1.txt","w");
wb
if(NULL == *fp1
)
{
exit(-1);
return -1;
}
for(int i
=0;i
<n
;++i
)
{
printf("%d",ar
[i
]);
fprintf(fp
,"%d",ar
[i
]); 文件指针 格式控制符,输出字符
fprintf(stdout
,"%d",ar
[i
]);
wb
fwrite(ar
,sizeof(int
),n
,fp
);
fscanf(fp
,"%d ",&ar
[i
]);
fread(buf
,sizeof(int
),n
,fp
);
}
fclose(fp
);
fp
= NULL;
}
feof()
fget()
fgets()
fputc()
fputs()
while(!feof(fp
))
{
ch
= fgetc(fp
);
printf("%c",ch
);
}
fclose(fp
);
fp
= NULL
二进制 内存和磁盘中显示的一样 读取的快 文本文件有字符串转化为数值