学习笔记



复习:1、字符串存取要注意结束符,结束符可         以搞笑操作字符,tsrlen         (),strcpy(),strcmp(),strcat()。
 memset(&a[],5,0)置零(任何数据结构)、memcpy,memcmp memmove.
       2、二位数组,int a[3][4] *(a+1) a[0]+1
 3、习题:void mystrcpy(char to[],char from)
{
int i=0;
while(from[i] !='\0')
{
to[i]=from[i];
i++;
}
to[i]='\0';
}

-----------------------------------------
指针:

(为什么有指针?指针的使用场景)

1、地址与指针的概念: 
  按变量地址存取变量值的方式成为“直接访问”  、“间接访问”只想变量i,存放的是地址(可以理解为i变量是地址,指针*k是存放i的变量)。*解引用的符号(取地址的符号)
int *i_pointer()
i_pointer = &i
(想访问值)*i_pointer(解引用,取到变量的值)
&,取地址,引用
*  解地址,
2、变量的指针和指向变量的指针:
变量的指针:变量的地址&i
指针变量:指针(一个变量专门用来存储变量的地址)。
变量和指针的类型要统一,因为不同类型数据存储格式不同.





下午:
1、申请内存空间:malloc(void,在使用时要进行强制转换)申请堆空间,堆空间里面没有限制,可以存储很大数据,内存申请之后不自动释放。堆存在映射(申请完需要 free),栈不存在映射。free(p)不改变p的值,只是释放malloc的空间。《free(p);p=NULL》

2、在子函数里面使用malloc:
在子函数里面不能将栈内存里面的局部变量return出去,如果想要将数据return出去可以在堆变量里面申请变量空间。

3、函数指针:
指向函数的指针。
函数在编译时被分配给一个入口地址。这个函数的入口地址就称为函数的指针
定义:int(这个是函数的返回值) (*p)();函数指针不要用来偏移。
调用:c = (*p)()----->将函数名作为一个参数

4、二级指针:
定义:int **p2;
赋值:赋的值是一级指针的地址 p2=&p1;
间接访问两次地址.
改变指针指向,只能用二级指针。
二级指针的使用场景:要在子函数里修改主函数里的一级指针变量的值,使用二级指针。

5、多维数组与指针(二级指针的偏移)

指针 数组
char * p[10];---->数组里面全部存的指针

数组 指针
int (*p)[10]------>指向数组的指针。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值