定义int arr[5] = {20, 10, 5, 39, 88};时,系统产生一个有5个元素的一维数组,5个元素分别是arr[0]到arr[4],对应的各个元素的地址分别是arr到arr+4。
员工经过长期磨合与沉淀,具备了协作精神,得以通过团队的力量开发出优质的产品。创新互联坚持“专注、创新、易用”的产品理念,因为“专注所以专业、创新互联网站所以易用所以简单”。公司专注于为企业提供网站设计制作、成都网站建设、微信公众号开发、电商网站开发,小程序设计,软件专业公司等一站式互联网企业服务。
当用sum(arr, arr + 5));计算数组总和时,sum是一个自定义函数,其内容是由编程人书写的。
如果这个函数是这样写:
int sum(int*a,int*b){
int*p,s;
for(p=a,s=0;pb;p++)
s+=*p;
return s;
}
就能得到正确的结果。
你说的“arr指向数组的首地址”是正确的,但“对arr+5后不是相当于arr[6]了吧”是错误的,因为arr+5是元素arr[5]的地址。但即使这样,如果自定义函数不加arr[5](像上面的例子),程序是能够得到正确的结果的。但是,如果不这样写,可能会造成这样数组下标越界。
这取决于函数sum是怎样写的。
最主要的,sum后面的arr与arr+5,只是两个参数,并不是加法的对象,这一点一定要搞清楚。
#includestdio.h
#includeconio.h
void login();
void add();
bool flags = true;
void main()
{
while(flags)
login();
//add();
//getch();
}
void login()
{
int k;
int L=888;
printf("口令888;请输入验证口令:");
scanf("%d",k);
if(L==k)
{
int choice;
printf("您输入正确,欢迎使用C计算器\n");
printf("+=======选择要做的运算=======+\n");
printf("+= 1、加法 =+\n");
printf("+= 2、减法 =+\n");
printf("+= 3、乘法 =+\n");
printf("+= 4、除法 =+\n");
printf("+= 5、求余 =+\n");
printf("+= 0、退出 =+\n ");
printf("+============================+\n");
scanf("%d",choice);
switch(choice)
{
case 1:
add();
break;
case 0:
flags = false;
break;
default : printf("您输入有误");
break;
}
}
else
{
printf("您输入错误,请重新输入!");
}
}
void add()
{
int jia,fa;
printf("请输入2个数");
scanf("%d %d",jia,fa);
printf("%d+%d=%d\n",jia,fa,jia+fa);
}
首先你add写在login里面,main先执行login在执行add,可是add在login了,所以main保留一个login,函数不能嵌套,add写在外面。为了实现循环,添加一个标志位flags初始为true,在选项里添加一个退出,选择之后flags设为flase,退出计算器。
思路:定义两个变量a和b,利用标准输入scanf函数输入两个整型并赋值给a和b,加法可以直接使用a+b得出的就是a与b的和,最后利用标准输出printf函数输出计算结果。
参考代码:
#includestdio.h
int main()
{
int a,b;
scanf("%d%d",a,b);
printf("%d\n",a+b);
return 0;
}
/*
输出:
15 20
35
*/
#include "stdio.h"
void main()
{
int a,b,c;
scanf("%d%d",a,b);
c=a+b;
printf("%d\n",c);
getch();
}
具体如下:
1、简介C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
2、基本介绍
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
3、运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
例子如下:
直接编译,程序输出结果中任意输入两个数字,程序执行结果如下图所示:
知识扩展:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSI C”,从此以后它便成为一种广泛使用的程序语言。
#include stdio.h
double f(double x)
{return(x*3+1);}
void main(){
double x;
scanf("%lf",x);
printf("%lf",f(x));
}