您的位置:首页 > 其它

结构体指针与结构体名做函数参数对比

2013-05-07 23:04 393 查看
用结构体指针做参数

#include <stdio.h>
#include <string.h> // strlen 函数言行头文件、
#define LOOP 20

struct name {
char name_1[LOOP];
char name_2[LOOP];
int sttal; //存储两个字符长度
};

int space_string ( char *str );
void string_long ( struct name * strin );
void printf_name ( struct name * print );
void get_string ( struct name * get );

int main (void )
{
struct name get;

get_string ( &get );
string_long ( &get );
printf_name ( &get );

gets ("黑狼制作");
return 0;
}
/* 字符串初始函数*/
void get_string ( struct name *get )
{
puts ("输入你的第一个名字");
gets ( get->name_1);
puts ("输入你的第二个名字");
gets ( get->name_2);
}

/*名字长度计算函数*/

void string_long ( struct name *strin )
{
strin->sttal = space_string (strin->name_1)
+ strlen (strin ->name_2);
}

/*打印*/
void printf_name (struct name *print )
{
printf ("%s , %s 。your name contains %d lattes \n",
print->name_1 , print->name_2, print->sttal);

}

/*判断字符是不是空格函数*/
int space_string ( char * str )
{
int i=0;
while( *str++ != ' ' && *str != '\0')
i++;

return i ;
}

用结构体名作函数参数

#include <stdio.h>
#include <string.h>
#define LONG 20

struct name {
char name_1[LONG];
char name_2[LONG];
int tatol;
};

struct name get_string (void);
struct name string_long (struct name string_count );
void printf_string (struct name stamp );

int main (void)
{
struct name name_count;

name_count = get_string ();
name_count = string_long(name_count);
printf_string (name_count);

printf ("程序结束\n");

return 0;
}
/*字符串初始化*/
struct name get_string(void)
{
struct name structe;

printf ("输入你的第一个人的名字\n");
gets ( structe.name_1);
printf ("输入你的第二个人的名字\n");
gets ( structe.name_2 );

return structe;
}

/*字符串长度计算*/
struct name string_long ( struct name string_count )
{
string_count.tatol = strlen ( string_count.name_1 )
+ strlen ( string_count.name_2);

return string_count;

}
/*字符串的输出函数*/
void printf_string ( struct name stamp )
{
printf ("%s, %s 两个字符串的长度是%d \n",
stamp.name_1 , stamp.name_2 , stamp.tatol);
}

总结,
当用结构体名做函数参数的时候。调用函数时会根据形式参数创建一个自动的结构体变量。相当于创建了一个形式常参数的副本。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: