当前位置:首页 » 编程语言 » c语言结构体引用

c语言结构体引用

发布时间: 2022-11-08 08:23:59

A. c语言结构体成员的引用问题

scanf的用法,格式后的参数都必须是地址,name是数组名,本身就是数据,age和sex都是整型数据,必须使用取地址符&。

p是struct student*类型,stu是stu[3]这个数组的第一个元素的地址,p指向第一个元素,因此ABC都是对的,D错在把(int*)变量值赋值给(struct student*)变量,有个强制转换则不会错,因为age是结构体第一个变量,其地址就是结构体变量的地址。

是指针间的赋值,必须保证左右操作数的指针类型是一致的。由于n是结构体sk的第一个变量,因此其地址与结构体变量地址相同,可以强制转换得到正确的地址。

c是一个二维数组,p是一个指向数组的指针,因此p的*运算都是得到一个数组,**运算才能取到数组中的值。只有D是**运算。

(1)c语言结构体引用扩展阅读:

C语言初学者比较喜欢的Turbo C2.0提供了400多个运行时函数,每个函数都完成特定的功能,用户可随意调用。这些函数总体分成输入输出函数、数学函数、字符串和内存函数、与BIOS和DOS有关的函数、 字符屏幕和图形功能函数、过程控制函数、目录函数等。

Windows系统所提供的Windows SDK中包含了数千个跟Windows应用程序开发相关的函数。其他操作系统,如Linux,也同样提供了大量的函数让应用程序开发人员调用。

参考资料来源:网络-C语言

B. 关于c语言结构体变量成员引用的问题

(1)、scanf的用法,格式后的参数都必须是地址,name是数组名,本身就是数据,age和sex都是整型数据,必须使用取地址符&;
(2)、p是struct
student*类型,stu是stu[3]这个数组的第一个元素的地址,p指向第一个元素,因此ABC都是对的,D错在把(int*)变量值赋值给(struct
student*)变量,如果有个强制转换则不会错,因为age是结构体第一个变量,其地址就是结构体变量的地址。
(3)、与(2)类似,是指针间的赋值,必须保证左右操作数的指针类型是一致的。由于n是结构体sk的第一个变量,因此其地址与结构体变量地址相同,可以强制转换得到正确的地址。
(4)、c是一个二维数组,p是一个指向数组的指针,因此p的*运算都是得到一个数组,**运算才能取到数组中的值。只有D是**运算。

C. C语言中,结构体数组中的成员是字符数组,其各元素怎么引用

先以数组名加下标,访问对应的结构体变量。
然后再以.成员名的方式,访问数组名。
最终以数组名加下标的方式,访问具体的数组元素。
比如
struct test
{
char a[100];

};
在定义
struct test t[20];
的情况下,访问t的第i个元素中,a的第j个字符的代码,可以写作
t[i].a[j]

D. c语言结构体里引用结构体

#include
struct person
{
char name[10];
int num;
};

void main()
{
struct person per[5];
void sort(struct person *, int );
int i;
printf("print letter:\n");
for(i=0;i<5;i++)
{
printf("name: ");
scanf("%s", &per[i].name);
printf("num: ");
scanf("%d", &per[i].num);
}
sort(per, 5);
for(i=0;i<5;i++)
printf("print: %s%d\n", per[i].name, per[i].num);
getch();
}

void sort(struct person *a, int n)
{
int i,j,t;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(a[i].num>a[j].num)
{
t=a[i].num; /*你代码中i写成j,这是细节问题*/
a[i].num=a[j].num;
a[j].num=t;
}
}

你代码有点问题,我给你改了改。TC测试通过。
除了注视的地方,还有几点要注意:
你源代码传送的是per[0].num的地址,记:a[0],但是a[1]的地址不等于
per[1].num的地址。
指针加1的意思你没理解好。
举个列子。
int a[10];
那么*(a+1)的意思是把a地址向后移动sizeof(int)个位。
所以你那个&a[1]指向的还是结构体中的数据。(恩,这里体现了低级语言的特性。每一个内存的每一位都要考虑到。要是你写个程序:200位的浮点数加法计算机,你更能体会到什么叫做考虑到每一位内存,调试的时候要一个内存一个内存的演算。代码我的空间里有,可以自己去看)

不懂的问

E. C语言中结构体数组中的整型数组怎样引用

#include<iostream>
usingnamespacestd;
inta[6][6];

structStrArray//声明一个结构体
{
intarray[10];
}strA[10];//定义一个结构体数组
intmain()
{
for(inti=0;i<10;i++)//引用第一个结构体的整型数组并赋值
{
strA[0].array[i]=i;
}
for(i=0;i<10;i++)//输出看下结果
{
printf("%d",strA[0].array[i]);
}
return0;
}

热点内容
继承者下载22下载ftp 发布:2025-01-12 02:44:06 浏览:352
数据库换格式 发布:2025-01-12 02:44:02 浏览:458
一起编程地球 发布:2025-01-12 02:42:43 浏览:872
无法设置kms服务器地址怎么办 发布:2025-01-12 02:42:36 浏览:523
android任务 发布:2025-01-12 02:36:07 浏览:632
家用办公学习电脑要什么配置 发布:2025-01-12 02:27:00 浏览:912
十一代思域劲动有哪些配置 发布:2025-01-12 02:26:56 浏览:416
java怎么删除文件 发布:2025-01-12 02:25:13 浏览:107
最新款的电脑高配置是什么样的 发布:2025-01-12 01:44:08 浏览:823
编程手舞蹈 发布:2025-01-12 01:36:18 浏览:958