七、C_base——函数
来源:互联网 发布:南方数据粘贴 编辑:程序博客网 时间:2024/06/06 00:42
【1】函数四大类
1--- main 2--- 库函数:atoi strcpy printf 3--- 系统调用 4--- 自定义函数
【2】一个程序的入口
main
【3】 main
函数原型:int main(int argc,const char *argv[]) argc //命令行参数表的个数 argc[0] //命令行第一个参数
【4】函数的定义
1、参数: 严格按照函数的要求传参 1、复制传参 2、地址传参 2、返回值: 1、类型必须匹配 2、int类型的函数的返回值可省略 3、函数可以有多条return,但只执行其中一条 4、return 用于返回一个数据,并且结束当前函数 5、void类型的函数可以使用return; return 0; //正常结束 return -1; //一场结束 return 1; //正常结束 3、声明: 主调函数在被调函数之前,需要声明 函数声明与函数的定义类似,多一个分号。 例如: 函数:int fun(int a,int b) {} 函数声明: int fun(int a,int b);
【5】 指针函数
返回值是指针的函数
实例:源码与注释(详细)
1、 1_main.c
#include <stdio.h>#include <stdio.h>//功能:main函数的参数//char *argv[]//本质:数组,元素char *类型int main(int argc, const char *argv[]){ printf("argc = %d\n",argc); //命令行的个数 //argv[0]相当与第一个传入的字符串的首地址 printf("argv[0] = %s\n",argv[0]); printf("argv[1] = %s\n",argv[1]); printf("argv[2] = %s\n",argv[2]); printf("*argv[0] = %c\n",*argv[0]); printf("*(argv[0]+1) = %c\n",*(argv[0]+1)); //将数值型字符串转化成整数 printf("atoi(arg[1]) = %d\n",atoi(argv[1])); // printf("xxxx = %c\n",*argv); printf("size(argv[0]) = %d\n",sizeof(argv[0])); return 0;}
2、 2_fun.c
#include <stdio.h>int fun1(){ int a,b,c; a = 10; b = 20; c = a + b; printf("c = %d\n",c);}int fun2(int a,int b) //形参{ int ret; ret = a + b; return ret;}void fun3(){ printf("hello world\n"); return; //return 0:正常结束 return -1:异常退出 printf("Hello World\n");}int fun(int a){ if(a > 0) return 1; else if(a == 1) return 0; else return -1;}int main(int argc, const char *argv[]){ fun1(); printf("fun2(1,2) = %d\n",fun2(1,2)); //实参 fun3(); fun(-2); return 0;}
3、 3_fun_arg.c
#include <stdio.h>int fun_1(int a) //函数实现:a = a + 5,并打印{ a += 5; printf("a = %d\n",a); return 0;}int fun_2(int *p) //指针型形参 *p = *p + 5{ *p += 5; printf("*p = %d\n",*p); return 0;}int main(){ int x = 0; //x并未进入fun_1,只是把0给他运算 fun_1(x); //a = 5 fun_1(x); //a = 5 fun_1(x); //a = 5 printf("x = %d\n",x); //x = 0 int y = 0; //y的地址给fun_2,相当与什么都给别人了 fun_2(&y); //p = 5 fun_2(&y); //p = 10 fun_2(&y); //p = 15 printf("y = %d\n",y); //y = 15}
4、 4_fun_array.c
#include <stdio.h>//数组的遍历访问int fun(int *a, int n){ int i; for(i=0; i<n; i++) { // printf("*(a+%d) = %d\n",i ,*(a+i)); printf("a[%d] = %d\n",i ,a[i]); } return 0;}int main(int argc, const char *argv[]){ int a[] = {0,1,2,3,4,5}; fun(a, sizeof(a)/sizeof(int)); return 0;}
5 、 5_my_strcat.c
#include <stdio.h>//字符串拼接//指针函数:本质是函数,返回值是指针char * my_strcat(char *a, char *b){ char *temp = a; while(*a != '\0') { a++; //当*a == ‘\0’时跳出循环 } while(*b != '\0') { // *a = *b; a++; b++;*、++第二优先级,右向左结合。 *a++ = *b++; } *a = '\0'; return temp;}int main(int argc, const char *argv[]){ char a[32] = "hello "; //h e l l o w o r l d \0 char b[] = "world"; // w o r l d \0 printf("a = %s\n", my_strcat(a,b) ) ; return 0;}
6、 6_fun.c
#include <stdio.h>#include <math.h>//打印非空格字符,记录空格字符的个数并返回int fun(char *a){ int count = 0; while(*a != '\0') { if(*a != ' ') { putchar(*a); } else { count++; } a++; } putchar(10); return count;}int main(int argc, const char *argv[]){ char a[] = "a b cde f ghi"; printf("ret = %d\n",fun(a)); printf("a = %s\n",a); return 0;}
阅读全文
1 0
- 七、C_base——函数
- 三、C_base——常用stdio.h函数
- 六、C_base——指针
- 五、C_base——数组
- 四、C_base——基本语句
- 二、C_base——数据类型/运算符
- 一、C_base——linux基本操作
- ENET(七)——enet_socket_send()函数
- js(七)——with函数
- Oracle分析函数七——分析函数案例
- Oracle分析函数七——分析函数案例
- Oracle分析函数七——分析函数案例
- MySQL知识(七)——聚合函数、加密函数
- C++从零开始(七)——何谓函数
- C++从零开始(七)——何谓函数
- C++从零开始(七)——何谓函数
- PHP基本语法(七)—— 函数
- C++从零开始(七)——何谓函数
- [RK3288][Android6.0] WiFi之Autojoin对无线网络的选择机制
- spark集群环境与任务调参
- 异步加载——MVP
- Wireshark网络抓包(一)——数据包、着色规则和提示
- 日常充电之--PHP表单验证
- 七、C_base——函数
- Dedecms网站服务器如何搬家?
- [Leetcode] 273. Integer to English Words 解题报告
- 不选择使用Lucene的6大原因?
- Hadoop入门基础教程 Hadoop之完全分布式环境搭建
- 来自 Adobe 的用户体验专家 AEM 之:第三方包的部署
- Springmvc+hibernate+spring简单实例实现(个人编译通过)
- 05构建一个网站高级测试计划
- alt+enter添加到自动清单文件