c语言实例
#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语言实例的更多相关文章
- 一起talk C栗子吧(第十二回:C语言实例--单链表一)
各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例.闲话休提, 言归正转. 让我们一起talk C栗子吧! 看官们,上一回中咱们没有说详细的样例,并且是说了样例中的文 ...
- 三大语言实例 (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)): ...
- 一起talk C栗子吧(第十回:C语言实例--最小公倍数)
各位看官们,大家好.从今天開始,我们讲大型章回体科技小说 :C栗子.也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们,上一回中咱们说的是最大公约数的样例,这一回咱们说的 ...
- C语言实例解析精粹学习笔记——18
<C语言实例解析精粹>中编译环境采用的是Turbo C 2.0.但是这个编译器年代久远,较新的编译器对书中的某些例子支持不好,在学习的时候同时做一些笔记. 实例18:将一个无符号整数转换为 ...
- C 语言实例 - 计算标准偏差
C 语言实例 - 计算标准偏差 计算标准偏差. 实例 #include <stdio.h> #include <math.h> float calculateSD(float ...
- C 语言实例 - 创建各类三角形图案
C 语言实例 - 创建各类三角形图案 创建三角形图案. 实例 - 使用 * 号 #include <stdio.h> int main() { int i, j, rows; printf ...
- C 语言实例 - 实现简单的计算器
C 语言实例 - 实现简单的计算器 实现加减乘除计算. 实例 # include <stdio.h> int main() { char operator; double firstNum ...
- C 语言实例 - 判断回文数
C 语言实例 - 判断回文数 判断一个数是否为回文数. 设n是一任意自然数.若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数.例如,若n=,则称n为一回文数:但若n=,则n不是回文数 ...
- C 语言实例 - 计算一个数的 n 次方
C 语言实例 - 计算一个数的 n 次方 计算一个数的 n 次方,例如: ,其中 为基数, 为指数. 实例 - 使用 while #include <stdio.h> int main() ...
- C 语言实例
C 语言实例 C 语言实例 - 输出 "Hello, World!" C 语言实例 - 输出整数 C 语言实例 - 两个数字相加 C 语言实例 - 两个浮点数相乘 C 语言实例 - ...
随机推荐
- CF GYM 100703I Endeavor for perfection
题意:有n个学习领域,每个领域有m个课程,学习第i个领域的第j个课程可以获得sij个技能点,在每个领域中选择一个课程,要求获得的n个技能点的最大值减最小值最小,输出符合要求的策略. 解法:尺取法.将课 ...
- MEX文件编写和调试
作者kaien,2010/02/16 以前我写过一篇文章,详细的介绍过MEX的格式,语法,编译,调试等.可惜记不清放在哪里了.而最近又用到MEX编程,所以只能重新温习一番.时间有限,只记下简要流程和注 ...
- HDU 5536 Chip Factory 字典树+贪心
给你n个数,a1....an,求(ai+aj)^ak最大的值,i不等于j不等于k 思路:先建字典树,暴力i,j每次删除他们,然后贪心找k,再恢复i,j,每次和答案取较大的,就是答案,有关异或的貌似很多 ...
- LoadRunner常见问题整理(转)
首先要感谢群友的无私分享,才能得到这篇好的学习资料,整理得太好了,所以收藏保存,方便以后学习. 一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消 ...
- (一)NUnit单元测试心得
由于各种缘由,一本<.Net单元测试艺术>突然出现在了我的办公桌上,于是我的单元测试之路就此开始.通过一两个月不间断的学习,以及不断结合具体的项目做开发,再结合书上的知识对单元测试有了一些 ...
- <转>SpringMVC与Struts2 比较总结
原链接:http://blog.csdn.net/chenleixing/article/details/44570681 个人整理: 1.级别不同:SpringMVC :方法 Struts是 类级 ...
- RxJava 复杂场景 Schedulers调度
参考: https://blog.piasy.com/2016/10/14/Complex-RxJava-2-scheduler/ 以Zip为例,学习Schedulers的线程调度 要求: * cre ...
- sql-表值函数tvf
带有参数的视图 create function fn_fenye (@count as int,@page as int) returns table as return select * from ...
- 【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 ...
- 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 ...