#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. APK中java代码反编译

    Android APK中的Java代码可以被反编译到什么程度主要看APK的加密程度. 第一种情况:无混淆无加密无加壳.直接利用Dex2jar和JD-GUI可把源码从APK里抠出来,代码逻辑清晰,基本上 ...

  2. MySQL 存储过程删除大表

    1.权限问题 alter routine 编辑或删除存储过程 create routine 建立存储过程 execute 创建存储过程 2.存储过程相关的一些命令 show procedure sta ...

  3. java jvm学习笔记七(jar包的代码认证和签名)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解 ...

  4. ASDL + WN725N 配置无线AP

    1.  ASDL 正常拨号上网 2.  安装TP-LINK无线客户端应用程序 打开之后选择模拟AP 如下图设置----应用 3.  本地连接----属性----高级 如下图设置 4.  宽带连接--- ...

  5. vs2010中的快捷键

    1.Ctrl+TAB  vs中各个页进行切换. 2.shift+alt+F10 用于帮助绑定选定项的选项.就用于写了一个类(Regex),需要导入其所在命名空间时(using System.Text. ...

  6. ios开发中,A valid provisioning profile for this executable was not found,的解决方法

    手头上的一个ios项目在上架后,再进行时出现了以上的这个错误,这是上架后忘了对一些配置进行复原 我的项目解决方法是: 是上面的这一块出现了问题,图片上的配置是正常的情况,但是上架的时候对其进行了修改, ...

  7. Codeforces 603A Alternative Thinking

    题意:给你一个01串,必须替换一次,且替换的为子串.问换完后,最大01串长度. #include <bits/stdc++.h> typedef long long ll; using n ...

  8. Keil uCos 2.52 stm32 【worldsing笔记】

    1.uCOSii V2.52    a.加了7个可以配置的钩子函数宏     #define OS_TASK_CREATE_HOOK_EN    0    /* 任务创建时调用钩子函数      使能 ...

  9. mac下烦人的eclipse安装svn插件

    eclipse作为一个鸡肋般的java ide,颇有食之无味弃之可惜之感.最近公司统一对电脑做了一些处理,搞的我的eclipse都不能用了.重新安装了一下,各种maven.svn,代码格式什么的依赖神 ...

  10. ZZTHX-Androidannotations框架联想

    我们首先来看一段代码: 在android开发中findViewById是最常用的一个方法,用来实例化页面上的控件,基本上每个控件都需要调用一次的,加入我们页面上有100个需要使用,那么findView ...