一、指针与二位数组 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)指针定义一个字符串,指针存的实际是常量区的那个字符串的首字符的地址。 |