一、指针与二位数组
1、什么是二维指针的数组?
是一个数组,里面的每一个子数组存的元素的类型是指针。
如:
//定义int类型变量
int a=0,b=1,c=2,d=3,e=4,f=5;
//获取所有变量的指针
int *pa=&a;
int *pb=&b;
int *pc=&c;
int *pd=&d;
int *pe=&e;
int *pf=&f;
//定义这个二维指针数组
int *p[2][3]={{pa,pb,pc},{pd,pe,pf}};
2、什么是二维数组的指针?
是一个指针,只是指针类型是二维数组。
如:
//这是一个二维数组
int arr[2][3]={{1,2,3},{4,5,6}};
//这是一个二维数组的指针
int (*p)[2][3]=&arr;
二、指针与函数?
1、什么是指针型函数?
是函数,这个函数的返回值类型是指针。
定义:类型 *函数名(参数){return指针类型;}
如:*add(int *a){return &a}; //表示定义一个返回值是int指针类型的add函数
2、什么时函数指针?
是指针,函数也会在内存中开辟一块空间,函数指针即这块空间的地址。
定义:函数返回值类型 (*指针名)(参数类型);
赋值:指针名=函数名;
使用:指针名(实参);
如:p(3);等效于add(3);
3、函数指针有什么特点?
1)函数指针做加减运算可以,但没有意义,不建议。
2)函数指针当做参数传递,因为其是一个指针类型
3)不管什么类型的指针,只要是指针,其里面存的就是地址。
三、指针与字符串
1、怎么表示一个字符串?
char arr[]="heima";
2、怎么用指针表示一个字符串?
char *p="heima";
3、怎么表示一个字符串数组?
char arrs[2][8]={"itcast","heima"};
4、怎么用指针表示一个字符串数组?
char *arrs[2]={"itcast","heima"};
5、字符串有什么特点?
1)指针定义的字符串是常量,不能被改变,而字符数组定义的是变量,可以被改变。
2)指针定义一个字符串,指针存的实际是常量区的那个字符串的首字符的地址。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |