C语言指针变量的简单使用

指针简单使用

指针两种初始化方式

            int *a=&b; 或者int *a; a=&b;

有*a,*b

           &a=

           &b=

              左边是地址,内存中的固定值不能被修改

1  有*a,*b

           a = *b;// 报错,整形变量不可以赋值指针变量

 

2  有*a,*b,若a指向c,b指向d,

         a = b;//这样做就相当于a是d的指针了

3  有*a,*b,

              *a = b;//报错,指针变量不可以赋值整形变量

4. 有*a,*b,

              *a =*b//则是将b指向的值赋给a指向的值

5  有*a,*b,

              a=&b//指针的指针

6  有*a,*b,

              *a = &b//指针的地址(指针的指针)不能赋给整形变量

7  int *a,若不进行初始化,而调用*a则会空指针异常

8   函数有: main() 有int *a , void fun(int *a)

       main()中调用fun(a);

       相当于是fun中创建一个实参*a,并将main中的a赋给它

       即是*a = a; (*a是一个指针类型的形参,a是实参代表指针a的     值,即是地址)

       之所以那样写是因为这相当于在初始化,实际效果是 形参a =实参    a。

       所以形参a 和实参a的值相同,所以指向的数值也相同,但是他    们作为指针变量本身   的地址确实各不相同的

 

9   main(){

              int a;

              fun(&a); }//这步调用做了 int *a=&a;也就相当于是形参a就是            实参a的指针了

        fun(int*a){

              int b=1;

              a=&b;//这步做的是把形参a的值改为b的地址,也就是相当                                  于将形参a改成了b的指针了。所以*a等于1,而函数                                  调用结束后,形参a被释放,实参a不会有任何变                             化。没有什么意义。

          *a=b;//这步做的是把形参a指向的值修改为b的数值,也就是                        说实参a的数值修改

                            成了1,函数调用结束,形参a被释放,实参a被改变。                    达到了我们通过传入变量a的地址来修改变量a的目的。

       }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值