*:指针运算符,指向对象的值(地址的指令)
&:取地址运算符,(物理地址,实际地址)
size of:用于获取变量或者数据类型的长度
只有相同类型的指针变量才能相互赋值
空指针用NULL
字符串结束标志' '
1.指针交换
从键盘输入两个整数到a、b,按由大到小输出
#include<stdio.h>
void main( )
{
int a,b,*pa=&a,*pb=&b,*p; /*定义指针变量pa、pb,并进行初始化*/
scanf("%d%d",&a,&b);
if(*pa<*pb)
{
p=pa; /*进行指针交换*/
pa=pb;
pb=p;
}
printf(" a=%d,b=%d ",a,b);
printf(" max=%d,min=%d",*pa,*pb); /*pa指向大数,pb指向小数*/
}
二级指针的定义:数据类型 * *指针变量(int a,*p,**pp;)
一级指针与二级指针的区别:p直接指向a(p=&a),*p是一级指针引用;pp直接指向p,再通过p指向a,pp间接指向a,**p是二级指针(pp只能指向指针变量)
指针函数的定义:类型标识符 *函数名(形式参数表)【int *fun(int a,int b) {函数体语句}】
返回指针或地址语句:return(& 变量名);或 return(指针变量)
住:指针函数的返回值一定是地址,并且返回值的类型要与函数类型一致
字符串函数strcat( ),strcpy( )
动态存储分配函数malloc( ),calloc( )
指向函数的指针变量的定义:类型标识符 (* 指针变量名)();【int (*p)();】