c语言基础学习(4)

int a[3][4]={0};
&a 数组地址
*(&a)数组首行地址
*(a+1)数组第二行首元素地址

strcpy(参数1,参数2)
字符串拷贝函数,把2中的字符串拷贝到1中,并且全部覆盖
strcat(参数1,参数2)
字符串连接函数,把2中的字符连接到1后面
strcmp(参数1,参数2)
字符串比较函数,1>2返回值>0,1<2返回值<0,1=2返回值=0

void print(void)
函数类型void表示没有返回值,没有形参
实参和形参个数相同,类型相同,顺序相同,名字可以不同
自定义函数在程序中的执行步骤:
1.通过函数名找到函数入口地址
2.给形参分配空间(栈空间)
3.传参(值传递,地址传递)
4.执行函数体
5.返回
6释放栈空间

register 类型 变量名
寄存器变量,变量存放在寄存器中,循环次数比较多的循环变量,可以使用register修饰
extern 类型 变量名
声明外部变量,告诉编译器变量在其他文件中被定义
static 类型 变量名
1.修饰全局变量,改变变量作用域,只能在本文件中使用,不能在其他文件中使用
2.修饰函数,改变作用域,只能在本文件中使用,不能被其他文件调用
3.修饰局部变量,改变变量的生命周期,直到程序结束才被释放(存放的位置不一样,不加static修饰,存放在栈空间,加上static修饰,存放在数据段(静态数据区))

宏函数的优点:1.节省空间(不需要给形参分配空间)2.执行效率高
(不需要根据地址找到函数入口)
缺点:1.编译效率低(第一步预处理需要替换)2.不安全,只是简单替换,没有语法检查

所有指针类型都占4个字节
int p 定义的时候,表示后面的变量是指针
p 使用的时候,表示取值
内存的访问方式:1.通过变量名访问 2.通过地址访问
char
和int
单位不一样
char加1,地址增加1个字节
int
加1,地址增加4个字节
段错误:访问了不能访问的内存

int *p
p=0x100
*p=1 不能自己指定指针地址,会出现段错误

int a
p=&a 系统分配空间是合法的

int*q
*q=100 q是局部变量,未初始化的局部变量是垃圾值,是野指针,不能使用

int*z=NULL
*z=100 空指针,也不能使用

分配内存空间malloc()
intpa=(int)malloc(sizeof(int)*2)
申请空间(堆空间),分配连续的地址,malloc返回值是void星所以要强转

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值