【c语言初阶】函数的嵌套
前言:
内容:
函数里不能包含一个函数,但是一个函数可以引用一个函数,就是
函数可以嵌套调用,不能嵌套定义
#include <stdio.h>
//函数嵌套
int add(int x,int y)
{
int xxc(int a) //不能这样写,里面就是又有一个自定义函数
{
}
addx(a,b); //但是这个函数可以调用其他函数,就想这样
return 0;
}
int main()
{
add(a,b);
return 0;
}
2、链式访问
就是说将strlen的返回值,当做%d的参数进行打印,嗯
strlen的返回值是int类型,可以用%d来接收
#include <stdio.h>
#include <string.h>
//链式访问
int main()
{
int len = strlen("abcdef");
printf("%d\n", len);
printf("%d\n", strlen("abcdef"));
}
还有一种写法就是
这个就是printf的嵌套,然后考察的是printf的返回值
printf的返回值就是打印的这个字符的长度作为返回值来接收
所以最先执行里面的printf的,就是打印43
然后里面第二个printf就是打印最后一个返回值,最后的printf打印的是43,也就是两个字符串的长度,作为返回值给第二个printf
然后第二个printf打印的就是二,然后第二个printf返回的就是一个字符串长度的2,就是一个字符
然后第一个printf就打印一个字符,打印的就是1
int main()
{
printf("%d", printf("%d", printf("43")));
return 0;
}
写代码的注意事项
这里没有返回值,因为是void,不返回参数或者结果
void是用来打印的,差不多,就是printf
#include <stdio.h>
void test()
{
return x+y;
}
int main()
{
int n = void(a,b)
}
还有就是
没有写任何类型,就默认是int类型,但是不介意这样写,因为这是模棱两可的
#include <stdio.h>
test(int x,int y)
{
return x+y;
}
int main()
{
int n = void(a,b)
}
模棱两可的写法二、
下面的代码在一些编译器上返回的是函数中执行过程中最后一条指令执行的结果
//这里打印的是5个字符,因为hehe四个字符,\n算一个字符
#include <stdio.h>
int test(int x,int y)
{
printf("hehe\n");
}
int main()
{
int n = test(a,b);
printf=("%d", n); //这里打印的是5个字符,因为hehe四个字符,\n算一个字符
}
明确接受不接受参数
void test(void) //这里的(void)就是明确表示不接收参数
//介绍错误写法
void test(void)
{
printf("hehe\n");
}
int main()
{
test(100);
test();
return 0;
}
main函数有三个参数,
l了解一下,知道main函数可以有参数的
//main函数有三个参数
int main(int argc, char* arge[], char *envp[])
{
return 0;
}