一、指针参与赋值操:
*p放在等号的左边赋值(给内存赋值)
*p放在等号的右边取值(从内存获取值)
*p放在等号的右边取值(从内存获取值)
二、指针一些特性:
1、指针的步长,根据所指内存空间类型来定。例如:char* ps ;它的步长ps+1 是 1。int* p;它的步长p+1 是 4。
2、建立指针指向谁,就把把谁的地址赋值给指针。
3、不断的给指针变量赋值,就是不断的改变指针变量(和所指向内存空间没有任何关系)。
2、建立指针指向谁,就把把谁的地址赋值给指针。
3、不断的给指针变量赋值,就是不断的改变指针变量(和所指向内存空间没有任何关系)。
三、在函数的调用中指针的用于对内存空间进行间接赋值:
1、*p间接赋值成立条件:3个条件 (多用于函数调用)
a、2个变量(通常一个实参,一个形参)
b)、建立关系,实参取地址赋给形参指针
c、 *p形参去间接修改实参的值
a、2个变量(通常一个实参,一个形参)
b)、建立关系,实参取地址赋给形参指针
c、 *p形参去间接修改实参的值
2、函数调用时,用n级指针(形参)改变n-1级指针(实参)的值
四、理解指针必须和内存四区概念相结合:
1、主调函数 被调函数
a、主调函数可以把堆区、栈区、全局区数据内存地址传给被调用函数
b、被调用函数只能返回堆区、全局区数据
1、主调函数 被调函数
a、主调函数可以把堆区、栈区、全局区数据内存地址传给被调用函数
b、被调用函数只能返回堆区、全局区数据
*******指针做函数参数,是有输入和输出特性的