这个说深了,就是进程加载进内存之后,不同的变量处在不同的内存空间的问题。说简单点也可以。
目前成都创新互联公司已为近1000家的企业提供了网站建设、域名、虚拟主机、网站托管运营、企业网站设计、嘉禾网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
你希望交换 a,b两个变量的值,但是你把a,b的值赋值给了x,y,而你交换了x,y的值,那么你想想a和b你又没有动它,他俩的值怎么会变呢?
因为exchange是按值传递的,e ,f ,g传的是值的一份拷贝,虽然fun确实修改了拷贝的值,但是还是没有修改main函数中的值,,,如果要有用可以改成:
#includestdio.h
int fun(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
return 0;
}
int exchange(int *a,int *b,int *c)
{
if(*a*c)
fun(a,c);
if(*b*c)
fun(b,c);
if(*a*b)
fun(a,b);
return 0;
}
void main()
{
int e,f,g;
printf("please input 3 number:\n");
scanf("%d%d%d",e,f,g);
exchange(e,f,g);
printf("output:\n");
printf("e= %d\tf= %d\tg= %d\n",e,f,g);
}
C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国ATT公司贝尔实验室(ATT Bell Laboratory)的研究员Ken Thompson闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏--Space Travel。他背着老板,找到了台空闲的机器--PDP-7。但这台机器没有操作系统,而游戏必须使用操作系统的一些功能,于是他着手为PDP-7开发操作系统。后来,这个操作系统被命名为--UNIX。
1970年,美国贝尔实验室的 Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。
1971年,同样酷爱Space Travel的Dennis M.Ritchie为了能早点儿玩上游戏,加入了Thompson的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。Thompson和Ritchie迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个"Space Travel",一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承Thompson和Ritchie之手的代码。
在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha,SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可运行。
1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
C语言继续发展,在1982年,很多有识之士和美国国家标准协会为了使这个语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商,编译器及其他软件工具生产商,软件设计师,顾问,学术界人士,C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准--ANSI X3.159-1989,简称"C89",不过人们也习惯称其为"ANSI C"。C89在1990年被国际标准组织ISO(International Standard Organization)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被简称为"C90"。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称"C99"。 在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899: 2011,简称为"C11"。
c语言里没有这个函数area,但是可以自定义函数。
函数定义:
使用:
返回值类型 函数名(类型 变量名,类型 变量名,…)
{
函数体;
return (数据);
}
例如:
int sum(int a, int b)
{
return a + b;
}
扩展资料
注意:
1、c语言一般根据函数的功能来取函数名,全部使用小写单词,多个单词之间用下划线分隔,如:add_to_arr。
2、参数的个数、类型由函数的功能决定,被调用时由调用者提供。如果函数不需要任何参数则写void,不要空着。
3、返回值类型根据函数的结果决定,如果不需要返回值则写void。
4、如果函数的定义出现在调用之前,声明可以省略。
5、函数声明时,参数的变量名可以省略。
6、如果不写返回值类型(会有警告),则默认为int类型返回值。
孩子,学了素数判断算法了吧?
你分别写两个程序,填空。一个是
main()
{int n,i,j;
printf("输入一个数");
scanf("%d",n);
for(i=2;i=n;i++)
{
/*补充程序代码,输出n以内的所有素数*/
}
}
第二个结构是
int prime(int n)
{
/*判断n是不是素数,是返回1,否返回0*/
}
main()
{int n,i,j;
printf("输入一个数");
scanf("%d",n);
for(i=2;i=n;i++)
if(prime(i))
/*补充程序代码,输出i*/
}
}
函数的用途是封装,把一个独立的功能封装到一个独立的函数中以供调用
你应该深有体会,一段代码,只实现独立的单一的功能,写起来跟玩似的。但是,一旦需要讲几个功能糅合到一起实现,就各种别扭各种错误百出。
函数的用途,就是让你心无旁贷一心一意的实现这个独立的单一的功能
因为你的 swap 函数中没有返回值,swap 函数修改代码如下:
int swap( int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
return a,b;
}