C语言补充知识

数据类型
#include “stdlib.h”
#include <stdlib.h>
“ ”:先搜索本地目录,再搜索标准目录
<>: 直接搜索标准目录
A:65 a:97

变量 在栈中
变量命名规则:c语言规定标识符只能是字母数字下划线,且第一个字符必须为字母或下划线,不能是数字
下划线开头一般是中间层的命名
关键字是不区分大小写的,但是常量是区分大小写的
变量先定义后使用

符号常量
define 定义
#define PI 3 //PI是符号常量
预处理之后程序的PI都会替换成3

数组
都具有相同的数据类型,使用过程中需要保留原始数据
方括号里面必须是常量表达式例如a[10],不能是变量
堆,栈是先进后出
不确定的量是存在栈中的
scanf %s是忽略空格和\n的

gets和puts
用于字符串

缓冲区的类型
全缓冲:缓冲区填满以后,对缓冲区进行刷新写入磁盘
行缓冲
不带缓冲

指针 = = 地址
只有整形变量的地址才能放到指向整形变量的指针变量中
指针的传递是实现在子函数改变主函数中某一变量
*取值 &取地址
int *p;p就是指针变量
j=*p++;//j=*p; p=p+1;
j=p[0]++;//j=p[0];p[0]=p[0]+1;
p=p存贮指向变量的地址
*p
=该地址中的值
指针存储的是地址值,在计算机中所有的指针的大小都是一样的64位的就是8B,32位的就是4B

malloc() 一旦申请,一直存在
内存释放时要使用malloc返回的地址,不能偏移
free()
memset(c,0,sizeof(c));
memcpy(b,a,sizeof(a));

指针使用场景
传递和偏移
什么是野指针,就是free以后的指针没有被赋值为null

堆内存
char *p;
p=(char *)malloc(20);
free§;
p=NULL;

字符指针与字符数组

定义数组指针
int (*p)[4];
二级指针:用于存放一级指针的地址值;
是服务于一级指针在子函数中要修改主函数中某一个一级指针变量的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值