题设是有问题的
成都创新互联主要从事成都网站建设、做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务柘城,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
首先你定义了一个结构体_STR_POINT 并且自定义了一个类型STR_POINT
现在你函数的返回值是STR_POINT类型 而你要求返回STR_POINT数组
STR_POINT数组的类型是STR_POINT[]显然预期类型和返回类型不同啊
这是编译器的语法预警
你的Change1和Change4不能改变s1的值,因为这两个函数的参数是形参,在传递参数时会产生一个s1的副本,它不会改变实参(s1)的值,函数里的变量是s1的一个副本,作用域仅限于函数体内,函数调用结束后,副本销毁,而s1的值并没有因为函数的执行而改变。而Change2传递的是指针,指向的就是s1,在函数体的操作就是对s1的操作,这样函数就可以改变s1的值。
#include "stdio.h"
struct abc{
int a;
int b;
char *p;
};
struct abc myabc(void){
struct abc n;
n.a=2;
n.b=3;
n.p=(char *)0x00FF3304;
return n;
}
void main(void)
{
struct abc x={1,2,(char *)0x00FF3300},y;
y=myabc();
printf("%d %d %p\n%d %d %p\n",x.a,x.b,x.p,y.a,y.b,y.p);
}
扩展资料:
在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。
C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。由于程序需要处理的问题往往比较复杂,而且呈多样化,已有的数据类型显得不能满足使用要求。C++允许用户根据需要自己声明一些类型,用户可以自己声明的类型还有结构体类型(structure)、共用体类型(union)、枚举类型(enumeration)、类类型(class )等,这些统称为用户自定义类型(user-defined type,UDT)。