C语言学习8

现在终于接触到了C语言当中比较高深点的课程指针了,通过今天对指针的学习,我们了解到指针运用的广泛,指针主要是针对对内存的改动而对数据进行变化,如果在调用函数里面变换地址的话变量名是不会被改变的比如在主函数里面输入两个数字,在调用的函数里面用一个中间变量对地址进行修改,最后在主函数当中的结果不会被改变,还有就是指针的定义,int *p  =0与int*p = null是等价的最主要的我觉得是指针的优先级的方面的知识,像*p++与(*p)++的值输出结果是完全不一样的,还有就是对地址的定义不能是不定义像 int p这种方式是不对的,如果换一种方式先定义一个中间变量然后把这个中间变量赋值给地址p这是有效的,最后老师还通过对两个值大小的比较,列出许多的方法进行反复的推敲与实践,发现指针对改变地址时候的多种变化,也发现了许多存在的隐性问题,可能说叫我们自己去实现的话很难找出问题;中午的时候也给我对指针的用途进行了展示,串改别人的数据,比如游戏外挂就有用到指针,通过对数据的地址查找直接在内存里去修改或直接注入,

今天主要还是理论知识的讲解,代码的编写就比较少了,不过还是自己实现了一下一些指针进行大小比较的方法,觉得还是不错的理解起来还是比较容易的,不过对于扩展这方面的话就有点不足了,还有待提高

今天的一个家庭作业是对三个数字的进行比较

#include<stdio.h>
void abc(int *p1, int*p2)
{
 int p;
 p = *p1;
 *p1 = *p2;
 *p2 = p;
}

void main()
{
 int a, b, c;
 int *p1, *p2, *p3;
 scanf("%d,%d,%d", &a, &b, &c);
 p1 = &a;
 p2 = &b;
 p3 = &c;
 if (a < b)
 {
  abc(p1, p2);
 }
 if (a < c)
 {
  abc(p1, p3);
 }
 if (b < c)
 {
  abc(p2, p3);
 }
  
 printf("%d,%d,%d", a, b, c);
 getchar();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值