指针知识自学

本文介绍了C语言中的指针基础知识,包括取地址符、解引用、指针偏移和函数参数传递。强调了指针在数组和内存管理中的作用,如通过malloc分配堆空间及free释放内存。此外,讨论了字符指针与字符数组的区别,以及在修改字符串时的注意事项。
摘要由CSDN通过智能技术生成

取地址符&也称引用,对应取值*也称解引用。

在c语言中调用函数要改变相应的值,需要加*;

        如void change(int * i){

        *i=5;}这是指针的间接访问。

指针的偏移:

       定义了一个指针变量int*p;

        *(p+1)此时的p会增加相应的函数变量类型大小的位置。

前++按运算的优先级来,后++是先忽略掉++,再进行值++。

当你把数组名传递给指针变量时,数组名时弱化为指针的,指向数组的第一个元素

malloc函数申请空间时,是在堆空间里面申请空间,返回的是无类型指针,所以进行强制类型转化。给一个指针赋值,通常使用strcpy。当你使用完这个指针,进行释放的时候free(指针名),同时要将指针置为NULL,不然会成为野指针。

函数调用的时候,功能函数存在栈空间里面,会随着函数调用结束而释放,堆空间则不会自动释放。

如char*print_stack(){

        char c[]="i am print_stack";

        gets(c);正常打印。

        return c;}

int main(){

        char*p;

        p=print_stack();

        puts(p);不能正常打印,在执行下一个函数的一瞬间,会清空上一个函数的值,滞留性。<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值