小蚂蚁学习C语言(16)——C语言指针——经典指针小程序和常犯错误

经典指针程序,互换两个数字

# include <stdio.h>
void swap(int * p, int * q)
{
    int t;
    if(*p < *q)
    {
        t = *p;
        *p = *q;
        *q = t;
    }
    return;
}
int main(void)
{
    int i = 5;
    int j = 7;
    swap(&i, &j);
    printf("i = %d\nj = %d\n",i ,j);
    return 0;
}

    常见的小错误

# include <stdio.h>
int main(void)
{
    int i = 3;
    int * p;
    int * q;
    p = &i;
    // *q = p  //error 语法编译出错
    // *q = *p    //error
    p = q;    //q是垃圾值,q赋给p,p也编程垃圾值
    printf("%d \n",*q);
    /*
        q的空间是属于本程序的,所以本程序可以读写q的内容,
        但是如果q内部是垃圾值,则本程序不能读写*q的内容
        因此此时*q所代表的内存单元的控制权限并没有分配给本程序
        所以本程序会出现运行错误。
    */
    return 0;
}


转载于:https://my.oschina.net/woshixiaomayi/blog/543361

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值