#include <stdio.h>
int main()
{
int i,j=;
int k=;
i=max(j,k);
printf("i=%d\n",i);
return ;
} int max(int a,int b)
{
int c;
c=a>b ? a:b;
return c;
}

实参和形参:

事实上,实参和形参被分配到内存的不同单元。

实参对形参是单向的”值传递“,形参若在函数中值改变不影响实参的值。

函数调用完毕之后,形参那部分内存单位被收回。

--------------------------------

c语言中 函数是不可以重名的。(c++与java是可以的,根据返回类型不同而不同)

函数体内的变量与与参数也是不可以重名的。

函数可以返回一个指针但不可以返回一个数组

例二:10!

#include <stdio.h>
int main()
{
int i;
float f=;
for(i=;i<=;i++)
f=f*i;
printf("10!=%10.0f\n",f); return ;
}

奇怪,c-free软件,函数要在调用函数的前面。也就是函数要在main函数前面出现

#include <stdio.h>
float fac(int n)
{
float f;
if(n==||n==) f= ;
else f=n*fac(n-);
return f;
} int main()
{
float f;
f=fac();
printf("10!=%10.0f\n",f);
return ;
}

例三:动态变量与静态变量

#include <stdio.h>

void function()
{
static int a=;
int b=;
a++;
b++;
printf("a=%d,b=%d\n",a,b);
} int main()
{
function();
function();
function();
return ;
}

例四:使用extern关键字提前声明全局变量

#include <stdio.h>

int max(int a,int b)
{
return a>b?a:b; }
int main()
{
extern i,j;
printf("%d\n",max(i,j));
}
int i=-,j=-;

例五:指针作为函数的参数

#include <stdio.h>
void change(int i,int *p)
{
i++;
if(p !=NULL)
(*p)++;
}
int main()
{
int a=,b=;
change(a,&b);
printf("a=%d b=%d\n",a,b);
return ;
}

指针直接改变了实参的值。局部变量是不可以改变

例六:返回指针的函数

#include <stdio.h>

char *name[]={ "Monday","Tuesday","Wednesday","Thursday",
"Friday","Saturday","Sunday" };
char *message= "wrong input"; char *week(int day)
{
if(day<||day>)
return message;
else
return name[day-];
} int main()
{
int day;
char *p;
printf("input a number of a week:\n ");
scanf("%d",&day);
p=week(day);
printf("%s\n",p);
return ;
}

例七:为什么要使用指针

#include <stdio.h>
void swap(int a,int b)
{
int tmp;
tmp=a;
a=b;
b=tmp;
}
main()
{
int a=,b=;
swap(,);
printf("%d\t%d\n",a,b);
return ;
}

不使用指针不能改变 主函数 a,b的值

#include <stdio.h>
void swap(int *a,int *b)
{
int tmp;
tmp=*a;
*a=*b;
*b=tmp;
} main()
{
int a=,b=;
swap(&a,&b);
printf("%d\t%d\n",a,b);
return ;
}

例八:字符串长度(虽然函数库里面有strlen函数,一个例子还是不错的)

两个length作用域是如何区别的呢

#include <stdlib.h>
#include <stdio.h> int strlen_1(char *string)
{
int length=;
while( *string++ !='\0')
length +=; return length; }
int main()
{
int length; length=strlen_1("abcdef");
printf("%d\n",length); return ;
}

用函数库里面的

#include <stdlib.h>
#include <stdio.h> int main()
{
printf("%d\n", strlen("abcdef"));
return ;
}

例九:指针的长度 。一般32位的都是4字节

#include <stdio.h>
int main()
{
int *p;
char *p2;
printf("%d\n", strlen("abcdef"));
printf("%d\n", sizeof("abcdef"));
printf("%d\n", sizeof(p));
printf("%d\n", sizeof(p2));
return ;
}

c语言实例的更多相关文章

  1. 一起talk C栗子吧(第十二回:C语言实例--单链表一)

    各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例.闲话休提, 言归正转. 让我们一起talk C栗子吧! 看官们,上一回中咱们没有说详细的样例,并且是说了样例中的文 ...

  2. 三大语言实例 (python,C/C++,Java)

    Python3.5语言实例: #coding = utf-8 import sys def Sub_string(a,b): c=[0]*len(b) for i in range(len(a)): ...

  3. 一起talk C栗子吧(第十回:C语言实例--最小公倍数)

    各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是最大公约数的样例,这一回咱们说的 ...

  4. C语言实例解析精粹学习笔记——18

    <C语言实例解析精粹>中编译环境采用的是Turbo C 2.0.但是这个编译器年代久远,较新的编译器对书中的某些例子支持不好,在学习的时候同时做一些笔记. 实例18:将一个无符号整数转换为 ...

  5. C 语言实例 - 计算标准偏差

    C 语言实例 - 计算标准偏差 计算标准偏差. 实例 #include <stdio.h> #include <math.h> float calculateSD(float ...

  6. C 语言实例 - 创建各类三角形图案

    C 语言实例 - 创建各类三角形图案 创建三角形图案. 实例 - 使用 * 号 #include <stdio.h> int main() { int i, j, rows; printf ...

  7. C 语言实例 - 实现简单的计算器

    C 语言实例 - 实现简单的计算器 实现加减乘除计算. 实例 # include <stdio.h> int main() { char operator; double firstNum ...

  8. C 语言实例 - 判断回文数

    C 语言实例 - 判断回文数 判断一个数是否为回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=,则称n为一回文数:但若n=,则n不是回文数 ...

  9. C 语言实例 - 计算一个数的 n 次方

    C 语言实例 - 计算一个数的 n 次方 计算一个数的 n 次方,例如: ,其中 为基数, 为指数. 实例 - 使用 while #include <stdio.h> int main() ...

  10. C 语言实例

    C 语言实例 C 语言实例 - 输出 "Hello, World!" C 语言实例 - 输出整数 C 语言实例 - 两个数字相加 C 语言实例 - 两个浮点数相乘 C 语言实例 - ...

随机推荐

  1. CF GYM 100703I Endeavor for perfection

    题意:有n个学习领域,每个领域有m个课程,学习第i个领域的第j个课程可以获得sij个技能点,在每个领域中选择一个课程,要求获得的n个技能点的最大值减最小值最小,输出符合要求的策略. 解法:尺取法.将课 ...

  2. MEX文件编写和调试

    作者kaien,2010/02/16 以前我写过一篇文章,详细的介绍过MEX的格式,语法,编译,调试等.可惜记不清放在哪里了.而最近又用到MEX编程,所以只能重新温习一番.时间有限,只记下简要流程和注 ...

  3. HDU 5536 Chip Factory 字典树+贪心

    给你n个数,a1....an,求(ai+aj)^ak最大的值,i不等于j不等于k 思路:先建字典树,暴力i,j每次删除他们,然后贪心找k,再恢复i,j,每次和答案取较大的,就是答案,有关异或的貌似很多 ...

  4. LoadRunner常见问题整理(转)

    首先要感谢群友的无私分享,才能得到这篇好的学习资料,整理得太好了,所以收藏保存,方便以后学习. 一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消 ...

  5. (一)NUnit单元测试心得

    由于各种缘由,一本<.Net单元测试艺术>突然出现在了我的办公桌上,于是我的单元测试之路就此开始.通过一两个月不间断的学习,以及不断结合具体的项目做开发,再结合书上的知识对单元测试有了一些 ...

  6. <转>SpringMVC与Struts2 比较总结

    原链接:http://blog.csdn.net/chenleixing/article/details/44570681 个人整理: 1.级别不同:SpringMVC :方法  Struts是 类级 ...

  7. RxJava 复杂场景 Schedulers调度

    参考: https://blog.piasy.com/2016/10/14/Complex-RxJava-2-scheduler/ 以Zip为例,学习Schedulers的线程调度 要求: * cre ...

  8. sql-表值函数tvf

    带有参数的视图 create function fn_fenye (@count as int,@page as int) returns table as return select * from ...

  9. 【Spark学习】Spark 1.1.0 with CDH5.2 安装部署

    [时间]2014年11月18日 [平台]Centos 6.5 [工具]scp [软件]jdk-7u67-linux-x64.rpm spark-worker-1.1.0+cdh5.2.0+56-1.c ...

  10. decorview that was originally added here or java.lang.IllegalArgumentException: View not attached to window manager

    使用Dialog的时候,没少出现下面这两个报错 12-11 17:47:49.776: E/WindowManager(11461): android.view.WindowLeaked: Activ ...