指针铁律demo01.c (简介赋值)

#include "stdlib.h"
#include "stdio.h"
#include "string.h"
//函数调用时,形参传给实参,用实参取地址,传给形参,在被调用函数里面用*p,来改变实参,把运算结果传出来。
//指针作为函数参数的精髓。
//C语言特有的想象,是C语言的精华。。。
//把实参取地址传给形参
//在函数调用的时候
/*
用1级指针形参,去间接修改了0级指针(实参)的值。。
用2级指针形参,去间接修改了1级指针(实参)的值。。
用3级指针形参,去间接修改了2级指针(实参)的值。。
用n级指针形参,去间接修改了n-1级指针(实参)的值。。
*/
void getFileLen(int *p)
{
*p = 200; //p是a的地址,*谁的地址,就不间接的修改谁 间接赋值*p放在=号的左边
//*形参去间接地的修改了实参的值。
}
int getFileLen2(int *p)
{
*p = 200; //p是a的地址,*谁的地址,就不间接的修改谁 间接赋值*p放在=号的左边
return 1;
}

/* 间接赋值成立的三个条件
条件1  //定义1个变量(实参) //定义1个变量(形参)
条件2//建立关联:把实参取地址传给形参
条件3://*形参去间接地的修改了实参的值。
*/
//间接赋值的应用场景
//场景1 在一个函数内 1 2 3 
//场景2:在啷个函数之间 12      3 
// 1           23//
//间接赋值条件应用深入分析 三个条件的组合,分别产生三种很重要的语法现象
//123都写在一个函数里面
//12写在一个函数里面  3 写在另外一个函数里面
//1 写在一个函数里面  23 写在另外一个函数里面 抛砖。。。到时候别不认识啊。。。。。
void main()
{
int a = 10; //定义1个变量(实参)//0级指针
int *p = NULL; //定义1个变量(形参)

//直接修改a的值
a = 20;
printf("直接修改a的值:%d \n", a);
//间接的修改a的值
p = &a ; //建立关联 把一个变量的地址,赋给另外一个变量

*p = 100; //p是a的地址,*谁的地址,就不间接的修改谁 间接赋值*p放在=号的左边 //*p间接的修改另外一个变量

printf("间接修改a的值:%d \n", a);

//打造这个环境p = &a ;
getFileLen(&a); //把实参取地址传给形参
printf("函数调用后a的值:%d \n", a);


system("pause");
}

猜你喜欢

转载自blog.csdn.net/lanlan1266/article/details/80165323