zoukankan      html  css  js  c++  java
  • c语言 参数传值和传地址

    static void TestCharP(char **p)
    {
    	char *q = "ssssss";
    	*p=q;
    }
    
    static void TestCharP1(char *p)
    {
    	char *q = "ssssss";
    	p=q;
    }
    
    static void TestInt(int *a)
    {
    	*a = 5;
    }
    
    static void TestInt1(int a)
    {
    	a = 5;
    }
    
    static void TestBuf(char buf[])
    {
    	buf[0] = 'a';
    }
    
    
    //传值和传地址的区别
    int main()
    {
    	int a = 0;
    	int a1 = 0;
    	char *p=NULL;
    	char buf[5] = {0};
    	char *p1 = NULL;
    
    	TestInt(&a);
    	printf("%d
    ",a);
    
    	TestInt1(a1);
    	printf("%d
    ",a1);
    
    	TestCharP(&p);
    	printf("%s
    ",p);
    
    	TestCharP1(p1);
    	printf("%s
    ",p1);
    
    	TestBuf(buf);
    	printf("%s
    ",buf);
    
    	return 0;
    }
    

    输出:

    2.查看地址转换

    static void TestCharP(char *p)
    {
    	//p指向地址:0x00045860
    	char *q = "ssssss";
    	//q指向地址:0x00045858
    	p=q;
    	//p指向地址:0x00045858
    }
    
    
    //传值和传地址的区别
    int main()
    {
    	char *p="aaa";
    	//p指向地址:0x00045860
    	TestCharP(p);
    	//p指向地址:0x00045860
    	printf("%s
    ",p);
    
    	return 0;
    }
    

    查看 p指向地址没有改变

    static void TestCharP(char **p)
    {
    	//*p指向地址:0x0014f888
    	char *q = "ssssss";
    	//q指向地址:0x01185858
    	*p=q;
    	//*p指向地址:0x01185858
    }
    
    
    //传值和传地址的区别
    int main()
    {
    	char *p="aaa";
    	//p指向地址:0x01185860
    	TestCharP(&p);
    	//p指向地址:0x00045858
    	printf("%s
    ",p);
    
    	return 0;
    }
    

      查看 p指向地址改变

  • 相关阅读:
    jquery的优势
    基于指纹识别技术的超市储物箱设计
    jquery核心
    jquery中的筛选
    红包算法设计
    jquery中trim() 去掉收尾空格
    jquery中效果的创建
    项目缓存
    StringUtils方法全集
    IE8下onclick事件不支持
  • 原文地址:https://www.cnblogs.com/yaosj/p/6732023.html
Copyright © 2011-2022 走看看