重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#includestdio.h
创新互联建站服务项目包括灌阳网站建设、灌阳网站制作、灌阳网页制作以及灌阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,灌阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到灌阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
#includestdlib.h
int assignment(int *,int);
void print(int *,int);
void main()
{
int sz,rt;
int *p; //定义一个指针,在子函数里再动态分配内存
printf("输入data的数据元素个数:");
scanf("%d",sz);
rt=assignment(p,sz); //调用赋值函数
printf("数组最后元素为:%d\n",rt);
}
int assignment(int data[],int size) //按 Fibonacci 数列对数组元素依次赋值
{
int res;
data=(int *)malloc(size*sizeof(int));
if(size==1)
data[0]=1;
else if(size==2)
{
data[0]=1;
data[1]=1;
}
else
{
data[0]=1;
data[1]=1;
for(int i=2;isize;i++)
data[i]=data[i-1]+data[i-2];
}
print(data,size); //调用打印函数
res=data[size-1]; //最后一个元素是data[size-1]
free(data); //释放内存
return res;
}
void print(int data[],int size) //打印数组
{
for(int i=0;isize;i++)
printf("%d ",data[i]);
}
有注释的,不明白的再讨论
n = scanf("%d",n);
这一句有问题
1. scanf 函数是有返回值的,它的返回值可以分成三种情况
1) 正整数,表示正确输入参数的个数。
例如执行 scanf(“%d %d”, a, b);
如果用户输入”3 4”,可以正确输入,返回2(正确输入了两个变量);
如果用户输入”3,4”,可以正确输入a,无法输入b,返回1(正确输入了一个变量)。
2) 0,表示用户的输入不匹配,无法正确输入任何值。如上例,用户如果输入”,3 4”,返回0。
3) EOF,这是在 stdio.h 里面定义的常量(通常值为-1),表示输入流已经结束。在Windows下,用户按下CTRL+Z(会看到一个^Z字符)再按下回车(可能需要重复2次),就表示输入结束;Linux/Unix下使用CTRL+D表示输入结束。
你这个输入一个返回值就是1,因此n也会一直等于一
就是你在函数中定义了一个变量a(b,c或其他字母叫什么都行,就是一个符号) 然后 a=5,就是说a的值就变成5了,你就把“=” 右边的值赋给了a,也可以是
b=a,那么b就等于5了,因为a现在的值就是5,把a赋给b。 如果继续a=10,那么a得知就变为10了现在,大致就是这个意思。
就是给一个变量或常量给一个值,比如int
a=1,就是把1赋给a,而并不代表通常意义的a等于1,如果要判断a是否等于一是利用a==1来实现
C语言中的结构体变量可以用另一个变量对其进行赋值或初始化。
简单结构体(不包含指针成员)直接赋值没有问题。但是稍微复杂一点的结构体里面会有指针成员,那么以上的浅拷贝则会有问题。
赋值会直接将结构体的指针变量被赋值,赋值之前其所指向的内存单元丢失,赋值之后若该指针指向的内存单元被其它指针释放掉,那么继续使用该成员指针的话则有可能导致内存泄漏。
概述:
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。
结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。
赋值语句是由赋值表达式再加上分号构成的表达式语句。其一般形式为:变量=表达式;
赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。
1 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,
因此,下述形式
变量=(变量=表达式);
是成立的,从而形成嵌套的情形。
其展开之后的一般形式为:
变量=变量=…=表达式;
例如:
a=b=c=d=e=5;
按照赋值运算符的右接合性,因此实际上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;
注意在变量说明中给变量赋初值和赋值语句的区别。
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之间仍必须用逗号间隔,而赋值语句则必须用分号结尾。例如:int a=5,b,c;
在变量说明中,不允许连续给多个变量赋初值。
如下述说明是错误的:
int a=b=c=5
必须写为
int a=5,b=5,c=5;
而赋值语句允许连续赋值。
注意赋值表达式和赋值语句的区别。
赋值表达式是一种表达式,它可以出现在任何允许表达式出现的地方,而赋值语句则不能。
下述语句是合法的:
if((x=y+5)0) z=x;
语句的功能是,若表达式x=y+5大于0则z=x。
下述语句是非法的:
if((x=y+5;)0) z=x;
因为x=y+5;是语句,不能出现在表达式中