一、链式访问
链式访问:把一个函数的返回值作为另外一个函数的参数。
int main() { int len = strlen("abc"); printf("%d\n", len); //链式访问 printf("%d\n", strlen("abc")); //把strlen的返回值作为printf的参数 //打印4321 printf("%d", printf("%d", printf("%d", 43))); //printf的返回值是打印字符的个数 //所以最里层的printf打印43,返回2 //中间的printf打印2,返回1 //最外层的printf打印1,返回1 //但是已经没有printf了,所以最外层虽然返回了1,但是并没有打印 return 0; }
二、函数的声明和定义
函数声明
1.告诉表一起有一个函数叫什么
,参数是什么
,返回类型是什么
。但是具体是不是存在,无关紧要。
2.函数的声明一般要出现在函数的使用之前
,要满足先声明后使用。
3.函数的声明一般要放在头文件
中。
函数定义
函数的定义是指函数的具体实现,交代函数的功能实现。
#include "Add.h" int main() { int a = 1; int b = 2; int c = Add(a, b); printf("%d\n", c); return 0; }
//函数声明 int Add(int, int);
//函数定义 int Add(int x, int y) { return x + y; }
三、goto语句
C语言中提供的可以随意滥用的goto语句和跳转的标号;
从理论上goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码;
最常见的用法就是终止程序在某些深度嵌套的结构的处理过程;
goto语句只能在一个函数内跳转,不能跨函数跳转。
int main() { //关机 //C语言提供了一个函数:system()用来执行系统命令 char input[20] = { 0 };//存放输入的信息 system("shutdown -s -t 60"); flag: printf("请注意,你的电脑将在1分钟内关机!\n取消关机请输入:别关机\n"); scanf("%s", input); //C语言中不能有==来判断字符串是否一样,要用strcmp()函数 if (strcmp(input, "别关机") == 0) { system("shutdown -a"); } else { goto flag; } return 0; }