zoukankan      html  css  js  c++  java
  • 双重指针学习笔记

    这是高中信息学竞赛没有仔细学的一个方面,所以这里又补了一下漏。

    直接运行以下代码并且仔细阅读相信你也可以理解指针和二重指针的作用。

    #include<stdio.h>
    int a=10,b=100;
    void njc(int *q){
    	printf("
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	q=&b;
    	printf("
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    }
    void njc2(int **q){
    	printf("
    **q=%d
    *q=%d
    ,q=%d
    ",**q,*q,q);
    	*q=&b;//这里有变化 
    	printf("
    **q=%d
    *q=%d
    ,q=%d
    ",**q,*q,q);
    } 
    int main(){
    	int *q;
    	printf("先查看三个变量的地址
    &a=%d
    &b=%d
    &q=%d
    ",&a,&b,&q);
    	//如果不传入函数直接在外面更改指针的指向
    	printf("如果不传入函数直接在外面更改指针的指向
    
    ");
    	q=&a;
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	q=&b;
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	q=&a;
    	printf("
    发现是可以成功的!!!");
    	//但是如果我们采用这种函数的方式进行更改
    	printf("
    
    但是如果我们采用这种函数的方式进行更改
    
    "); 
    	njc(q);
    	printf("以上为函数输出,以下为主函数输出
    
    ");
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	//发现函数中是成功的,但是主函数中是有问题的
    	//这是因为,编译器要为函数的每个参数制作临时的副本(也叫临时变量),所以上面函数
    	//中的q相当于是主函数中的q的副本,副本的变化是不会影响主函数中的原本的变化的
    	//所以碰到这种问题,我们应该采用二级指针来解决
    	printf("
    
    
    
    
    
    
    
    ");//这里换了很多行
    	printf("如果不传入函数直接在外面更改指针的指向
    
    ");
    	q=&a;
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	q=&b;
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    	q=&a;
    	printf("
    发现是可以成功的!!!");
    	printf("
    
    
    这时我们请上二级指针原来q指向是a=10
    
    "); 
    	njc2(&q);
    	printf("以上为函数输出,以下为主函数输出
    
    ");
    	printf("查看一下
    *q=%d
    q=%d
    &q=%d
    ",*q,q,&q);
    } 
    
    
  • 相关阅读:
    XHTML基础问答-给初学者
    动态改变表格的行数列数(添加表格)
    记录的添加,修改,删除等操作,??
    数据绑定
    优秀ASP.NET程序员修炼之路
    关于Command的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的区别
    MyEclipse7.5注册
    实用JavaScript代码库
    解决数据库录入中文数据乱码问题
    Oracle占用8080端口问题的解决
  • 原文地址:https://www.cnblogs.com/mudrobot/p/14120669.html
Copyright © 2011-2022 走看看