C语言教程之函数指针变量与指针函数的区别(下篇)

/*********************************************************************************************

注意:函数指针变量与指针函数的区别:

函数指针:指向函数的指针变量

指针函数:返回指针也就是地址的函数他们侧重点不一样

**********************************************************************************************/

 C语言教程之函数指针变量与指针函数的区别(下篇)_设计制作_电源/新能源

//函数指针变量

#if 0

int max(int a,int b)

{

if( a 》 b ) return a;

else return b;

}

void main(void)

{

int x,y,z;

int ( *pfun )(int,int); //定义函数指针变量

ser_init();

printf(“input two numbe     rs   :n”);

s     can   f(“%d%d”,&x,&y);

pfun = max; //把函数名(函数入口地址)赋给函数指针变量

z=(*pfun)(x,y); //调用函数指针变量,实参x和y的值传递给形参a和b

printf(“max=%dn”,z); //形参a和b的值发生交换存储在max函数存储区,因为pfun指针变量指向函数max首地址

} //所以z取得max函数的最大值

#endif

//--------------------------------------------------------------------------------------------

#if 0

//返回指针的函数,函数返回值为地址

char *day(int n)

{

sta         TI   c char *weekday[ ]={ //指针数组由指针元素组成

“Illegal day”,

“Monday”,

“Tuesday”,

“Wednesday”,

“Thursday”,

“Friday”,

“Saturday”,

“Sunday”

};

if( n《0||n》6) return weekday[0] ; //返回指针元素也就是地址

else return weekday[n];

}

void main(void)

{

while(1)

{

if(!bflag)

{

int i;

// char *day(int n); //指针函数声明

ser_init();

printf(“input No.:n”);

scanf(“%d”,&i);

printf(“Num=%d---》Day=%sn”,i,day(i));

bflag = 1;

}

}

}

#endif

//---------------------------------------------------------------------------------

#if 0

void main(void)

{

char string[]=“I love you!”; //字符数组访问字符串

ser_init();

printf(“string = %s”,string);

}

void main(void)

{

char *string=“I love you! my baby”; //字符指针变量访问字符串

ser_init();

printf(“string = %s”,string);

}

#endif

//---------------------------------------------------------------------------------

#if 0

//选择法排序(由小到大排序)

void SelectSort(char *name[],int n) //形参指针数组---由指向字符的指针元素组成

{

int i,j,k; //k为中间变量,暂存下标号

char *ps; //中间指针变量,暂存值

for(i=0;i { // x0 x1 x2 x3 。。.x(n-1) x(n)

k = i; //从下标0开始选择一个数,然后在后面的序列里比较,

//如果有小于前面的那个数就交换下标号

for(j=i+1;j {

if(strcmp(name[k],name[j])》0 ) k=j;

}

if(k!=i)

{ //后面序列有大于前面那个数

ps=name[i]; //name[]中的元素为指针地址

name[i]=name[k];

name[k]=ps;

}

}

}

void print(char *name[],int n)

{

int i;

for(i=0;i}

void main(void)

{

while(1)

{

if(!bflag)

{

int n;

sta  TI c char *name[]={“CHINA”,“AMERICAN”,“ENGLANGD”,“JANPANESE”,“GERMANY”,“FRANCE”,“AUSTRALIAN”};

//定义指针数组:数组中的每个元素为一个指针

n=7;

ser_init();

SelectSort(name,n); //指针数组的首地址传递给形参变量

print(name,n);

printf(“%c”,*name[0]);

bflag = 1;

}

}

}

#endif

//----------------------------------------------------------------------------------------

#if 0

//选择法排序(由小到大排序)

void SelectSort(int *name[],int n) //形参指针数组---由指向字符的指针元素组成

{

int i,j,k; //k为中间变量,暂存下标号

int *ps; //中间指针变量,暂存值

for(i=0;i { // x0 x1 x2 x3 。。.x(n-1) x(n)

k = i; //从下标0开始选择一个数,然后在后面的序列里比较,

//如果有小于前面的那个数就交换下标号

for(j=i+1;j {

// if( strcmp(name[k],name[j]) 》 0 ) k=j;

}

if(k!=i)

{ //后面序列有大于前面那个数

ps=name[i]; //name[]中的元素为指针地址

name[i]=name[k];

name[k]=ps;

}

}

}

void print(int *name[],int n)

{

int i;

for(i=0;i}

void main(void)

{

while(1)

{

if(!bflag)

{

int n;

sta  TI c int *name[]={11,22,33,44,55,66};

//name[0]=0xaa;

//name[1]=0xbb;

//name[2]=0xcc;

//name[3]=0xdd;

//name[4]=0xee;

//name[5]=0xff;

//定义指针数组:数组中的每个元素为一个指针

n=20;

ser_init();

SelectSort(name,n); //指针数组的首地址传递给形参变量

print(name,n);

bflag = 1;

}

}

}

#endif

//---------------------------------------------------------------------------------------

#if 0

//指向指针变量的指针变量

void main(void)

{

while(1)

{

if(!bflag)

{

int x,*p,**pp; //pp为 指向整型的指针变量 的指针变量

ser_init();

printf(“input one number:n”);

scanf(“%d”,&x);

p=&x;

// p=&x;

pp=&p;

// q=&x;

printf(“%dn”,*p); //变量x的值

printf(“%dn”,**pp); //变量x的值

bflag=1;

}

}

}

#endif

57
159
0
93

相关资讯

  1. 1、《延禧攻略》里网友们以为傅恒买了iPhone,网友:果然是富家子弟1081
  2. 2、“周星驰第一女郎”容貌大改,50岁的她难道中了“面目全非脚”3932
  3. 3、《环太平洋》各地满场轰动一票难求带热暑期档2351
  4. 4、今日上映丨错过了《超时空同居》还要错过超时空对话吗4433
  5. 5、七十多年前的老电影《卡萨布兰卡》,为什么值得看很多遍?2225
  6. 6、86版《西游记》的嫦娥扮演人,一生只演了1部戏,下海后身家过亿2235
  7. 7、梁洛施复出上节目罕见谈感情,不悔未婚生子却又为何落泪?2211
  8. 8、周润发的地位是吹出来的?看看赵本山、周星驰是怎么称呼他的963
  9. 9、郑凯主持海南电影节!语不惊人死不休?同生日朱一龙遭遇猪队友?3560
  10. 10、告别航航后迎来新的惊喜,易烊千玺特邀出演的《世间有她》明日即将官宣定档!972
全部评论(0)
我也有话说
0
收藏
点赞
顶部