结构体指针与结构体名做函数参数对比
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);
}
总结,
当用结构体名做函数参数的时候。调用函数时会根据形式参数创建一个自动的结构体变量。相当于创建了一个形式常参数的副本。
#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);
}
总结,
当用结构体名做函数参数的时候。调用函数时会根据形式参数创建一个自动的结构体变量。相当于创建了一个形式常参数的副本。
相关文章推荐
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
- 结构体元素做函数参数和结构指针做函数参数
- 【C语言提高37】结构体元素做函数参数与结构指针做函数参数
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析 .
- 结构体变量、结构指针变量、结构数组作为函数的参数应用实例分析
- 结构体、结构指针作为函数参数
- 结构体指针作为函数参数
- 细节决定成败(用结构体变量和结构体指针变量的指针做函数参数)
- [编程] C语言结构体指针作为函数参数
- 函数用参数为 结构体指针 在VC下出现的问题
- 指向结构体变量的指针作函数参数
- 指针、引用、一般变量(int 等)作为函数参数的结果对比
- 《IOS_C语言》高级指针(结构体指针、结构体数组指针、结构体数组指针,作为函数的参数使用、预编译指令)
- 结构体定义与作为函数参数的结构
- 函数参数调用指针、结构体
- 正确使用指针(指针作为输出型参数)与结构体指针作为函数参数
- 结构体指针作为函数参数传递却无法传值的有关问题
- 用结构体变量和结构体变量的指针做参数函数