
c语言函数参数问题
#include"stdio.h"void_t(char*a){printf("%s",a);}voidmain(){a:_t("iloveyou");}这个是函数的什么...
#include "stdio.h"
void _t(char *a)
{
printf("%s",a);
}
void main()
{a: _t("i love you");
}
这个是函数的什么用法,杂实参这样都可以。 展开
void _t(char *a)
{
printf("%s",a);
}
void main()
{a: _t("i love you");
}
这个是函数的什么用法,杂实参这样都可以。 展开
5个回答
展开全部
_t(char *a)是一个函数, 它的参数是一个字符型的指针, 而实参是一个字符串字面量,字符串字面量将它的首地址传给了字符型指针,在将从首地址以后的字符串输出,知道遇见\0为止
展开全部
个人理解,因为不是很清楚:如下写的话估计就比较容易理解了
#include "stdio.h"
void _t(char *a)//函数定义,不用解释了
{
printf("%s",a);//输出传递过来的参数a的值,也不详解了
}
void main()//主函数
{
a://循环定义,这里的a和函数声明中的a没有关系
_t("i love you"); //函数调用,直接用字符串赋值,这个应该很好理解了
}
其实上面的函数主要让人疑惑的地方就是为什么可以这样调用函数:a: _t("i love you");
其实,函数定义中的形参名和其他函数中的变量名之间的关系可以说是没有(当然特殊的除外:指针,引用一类),因此,上句中的a就不用过于考虑,想到c中有一类特殊的循环方式,就是
loop:
{
循环体;
}
goto loop;
当然,上述循环中的loop可以用其他任意的自定义变量代替(有些许限制就不详述了)。
因此,上述的main函数,其实可以简化成main(){_t("i love you");}。
个人只能做上述分析,如有失当,还请后到的大虾指正!
#include "stdio.h"
void _t(char *a)//函数定义,不用解释了
{
printf("%s",a);//输出传递过来的参数a的值,也不详解了
}
void main()//主函数
{
a://循环定义,这里的a和函数声明中的a没有关系
_t("i love you"); //函数调用,直接用字符串赋值,这个应该很好理解了
}
其实上面的函数主要让人疑惑的地方就是为什么可以这样调用函数:a: _t("i love you");
其实,函数定义中的形参名和其他函数中的变量名之间的关系可以说是没有(当然特殊的除外:指针,引用一类),因此,上句中的a就不用过于考虑,想到c中有一类特殊的循环方式,就是
loop:
{
循环体;
}
goto loop;
当然,上述循环中的loop可以用其他任意的自定义变量代替(有些许限制就不详述了)。
因此,上述的main函数,其实可以简化成main(){_t("i love you");}。
个人只能做上述分析,如有失当,还请后到的大虾指正!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main中,"i love you"是实参,传入函数_t的是其在静态存储区域的地址。而a:,后边的冒号表明,a只是一个标记(label),你开心的话,可以把它改为何人合法的标识符。
label的作用,主要是在使用goto语句,用来表示跳转的位置。但现在的程序结构,建议不采用goto语句,所以label也比较少见了。
label的作用,主要是在使用goto语句,用来表示跳转的位置。但现在的程序结构,建议不采用goto语句,所以label也比较少见了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
属于字符指针的用法,形参是是一个字符指针a,main函数中调用_t()时,实参是字符串"i love you",传递给形参的是该字符串的首地址,也就是把该字符串的首地址赋值给a,此时,函数_t()中的参数a成为指向“i love you”的指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实 char *a 是一个字符串的第一个字符的指针 所以实际是传入i love you字符串中i的空间位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询