linux c 结构变量的首地址为什么分配在奇地址上

linux c 结构变量的首地址为什么分配在奇地址上,第1张

结构变量的首地址,是指结构体变量在内存存储中,起始的地址值。在C语言中,对于任意的结构体变量a,可以通过&a来获取首地址。

结构体的首地址是为C语言中的特殊类型指针变量服务的。

指针变量存储的实际值即为地址,所以对指针变量赋值时,常见的方式就是

p = &a

c语言中定义一个结构体,其变量在编译时就确定好了。而且,编译后,变量的名称就不存在了,换成了相应的内存地址信息。所以,在运行时,再去检查某个变量是否存在,是不合理的 *** 作,系统是不支持的。

可以做的工作是:检测结构体中的变量的值是否为0。如:

#include <stdio.h>

#include <string.h>

struct data {

    int num

    char name[11]

    int age 

} student 

void main()

{

    memset( &student, 0, sizeof(student) ) //清理结构体内容为0

    if ( student.num==0 ) //如果没有数据,则录入数据

    {

        printf("input stu_num: ")scanf("%d", &student.num )

        printf("input stu_name: ")scanf("%s", student.name )

        printf("input stu_age: ")scanf("%d", &student.age )

    }

}

代码没有实际意义,只在说明问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7264922.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存