数组指针与指针数组 函数指针与指针函数

/*

数组指针实质是一个指针,它指向数组,如对于一个二维数组指针,指针指向每行元素的首地址
*/
/*
#include<stdio.h>

int main()
{
int a[3][3]={1,2,3,4,5,6,7,8,9};
int (*Pint)[3]=&a[0];
printf("%d\n",(*Pint)[0]);//1 等价于printf("%d\n",*Pint[0]);
printf("%d\n",(*Pint)[1]);//2
printf("%d\n",(*Pint)[8]);//9
printf("%d\n",*(Pint+1)[0]);//4 等价与 printf("%d\n",*(Pint+0)[1]);
printf("%d\n",*(Pint+0)[1]);//7

return 0;
}
*/


/*******************************************************************指针数组*********************************************************/
//指针数组,实质是指向一个数组,数组中,每个元素都为一个指针
/*
总结:本例是由3个指针组合成一个数组指针,每个指针指向一个字符串


#include<stdio.h>
#include<string.h>
int main()
{
char *str1="hello";
char *str2="WORLD";
char *str3="mingtian";
char *STR[3]={str1,str2,str3};
printf("%s\n",STR[0]);
printf("%s\n",STR[2]);
return 0;
}
*/
/*******************************************************************函数指针*********************************************************/
/*总结:1.函数指针是个指向函数的指针,首先定义:定义如下 (函数返回值类型)(*指针名)(函数参数类型)如:void (*fun)(void)
定义一个指向返回值类型为空,无参数的函数的函数指针
2.定义函数指针时函数参数类型一定要有
3.在主函数中使用函数指针时,函数指针后面一定要带上括号,括号里面是函数指针指向函数的参数。
*/
/*
#include<stdio.h>

void show(void)
{
printf("这是一个测试函数\n");
}

int main()
{
void (*fun)(void)=show;
//show();
fun();
return 0;
}
*/
/*******************************************************************指针函数*********************************************************/
/*
总结:1.区别指针函数和函数指针的的定义的不同,和指针数组和数组指针的区别一样
2.指针函数必须带有返回值,不然会出错(需要查资料验证猜想的正确性)
*/


#include<stdio.h>
#include<windows.h>
int *function(void);//指针函数
int main()
{
function();
system("pause");
return 0;
}
int *function(void)
{

printf("1234\n");
return 0;

}

猜你喜欢

转载自www.cnblogs.com/muzixiaofeng/p/10088700.html
今日推荐