精华内容
下载资源
问答
  • 书上说结构体变量名不是结构体变量的首地址,为了测试调用结构体变量名什么,我写了个小程序 #include<stdio.h> typedef struct{ char name[20]; int value; }Student; int main() { Student a={"abc",...
  • c语言中结构体类型变量类型,结构体变量名赋值 这几天看图用领接表存储图时候,开始实现的时候发现对结构体的变量名赋值有些疑惑,疑惑的地方查了下,留做备份 //此声明声明了拥有3个成员的结构体,分别为整型的a,...

    结构体的详情参考本文档

    c语言中结构体类型变量类型,结构体变量名赋值

    这几天看图用领接表存储图时候,开始实现的时候发现对结构体的变量名赋值有些疑惑,疑惑的地方查了下,留做备份

    //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
    //同时又声明了结构体变量s1
    //这个结构体并没有标明其标签
    struct
    {
    int a;
    char b;
    double c;
    } s1;

    //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c
    //结构体的标签被命名为SIMPLE,没有声明变量
    struct SIMPLE
    {
    int a;
    char b;
    double c;
    };
    //用SIMPLE标签的结构体,另外声明了变量t1、t2、t3
    struct SIMPLE t1, t2[20], *t3;

    *//也可以用typedef创建新类型
    typedef struct
    {
    int a;
    char b;
    double c;
    } Simple2;
    //现在可以用Simple2作为类型声明新的结构体变量
    Simple2 u1, u2[20], u3;

    在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令 t3=&s1则是非法的。

    展开全文
  • 结构体变量名) 做指针  验证程序如下: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include "string.h" #include "io.h" #include&lt;iostream&gt; ...

    //在结构体变量后加个[ ] 就能在主程序中使用结构体变量作为指针了,否则就要用  (&结构体变量名)  做指针 

    验证程序如下:

    #include <stdio.h>
    #include <stdlib.h>
    #include "string.h"
    #include "io.h" 
    #include<iostream>
    
    using namespace std;
    struct stu{
    	char *name;  //姓名
    	int num;  //学号
    	int age;  //年龄
    	char group;  //所在小组
    	float score;  //成绩
    }stus[] = 
    	{ "Li ping", 5, 18, 'C', 145.0 }
    ; //在结构体变量后加个[] 就能在主程序中使用结构体变量作为指针了,否则就要用  (&结构体变量名)  做指针
    
    void average(struct stu *ps, int len);
    
    int main(){
    	int len = sizeof(stus) / sizeof(struct stu);
    	cout << len << endl;
    	average(stus, len);		//果然,名称是个指针
    	return 0;
    }
    
    void average(struct stu *ps, int len){		//需要在子函数中写上函数类型   struct stu 合起来表示一个指针类型,不能单独写struct,也不能单独写 stu
    	
    	cout << ps->name << endl;
    
    	}

     

    展开全文
  • 问题: typedef struct a{ int n; int m; }c;...问题一:a是结构体名,c是结构体变量名,为什么不能直接使用(c.n=1;c.m=2;编译时错误)? 问题二:在声明b时,只有struct a b;和c b ;这两种方...

    问题:

    typedef struct a
    {
    	int n;
    	int m;
    }c;
    声明b只有struct a b或者struct c b是对的
    b.n=1;
    b.m=2;
    printf("%d%d\n", b.n,b.m);
    问题一:a是结构体名,c是结构体变量名,为什么不能直接使用(c.n=1;c.m=2;编译时错误)?
    问题二:在声明b时,只有struct a b;和c b ;这两种方法正确,c不是结构体变量名吗,为什么可以声明变量b?
    

    解析:

    typedef struct a
    {
    	int n;
    	int m;
    }c;
    相当于
    typedef struct a c;
    typedef为struct a创建了别名c;
    故c不是变量名而是struct a类型的别名
    也可以这样:
    c exm;
    exm.n=1;
    exm.m=2;
    
    展开全文
  • 刚看了下,网上关于结构体变量名的文章,现做一些总结。理解可能还会有错误,有待以后更正。 结构体变量代表的是一块内存区域。 typedef struct{ char m; int n; } st;void main(){ st st1; /*声明一个...
     刚看了下,网上关于结构体变量名的文章,现做一些总结。理解可能还会有错误,有待以后更正。

        结构体变量代表的是一块内存区域。
                

    1. typedef struct
    2. {
    3.     char m;
    4.     int  n;
    5.     
    6. } st;

    7. void main()
    8. {
    9.     st st1;   
    10. /*声明一个变量,则代表申请了一片内存区域。从程序员的角度这块内存区域就可以用st1来表示.而内存区域的大小是由类型决定的。这里为4(char m)+4(int n)个字节(按理说m为char类型应该1个字节,为什么分配了4个字节的空间,好像与编译器根机器字节有关,这个问题还需要进一步搞明白)*/
    11. 这样,这片内存区域就可以表示为:
    12. xx xx xx xx | xx xx xx xx

    13. 其中前四个字节用于存放char m,后四个字节用来存放int n.
    14. st1.m='a';
       st1.n=4;
    15. 这样内存中的值为:
    16. a xx xx xx|00 00 00 04(其中xx xx为随机值)

    17. printf("/n%c,%d",st1);
    18. /*这句话,可以正确输出 a,4。实际是输出内存区域中的内容*/
    19. printf("/n%c",st1);
    20. /*这句话也可以正确输出a */
    21.    
    22.     char *p;
    23.     int i;  

    24.     p=(char *)&st1;
    25.     printf("/n%c",*p);
    26.     p+=4;
    27.     注意,地址的单位变成char型。这样p事实上指向第4个字节的数据
    28.     printf("/n%d",*p);
    29.     可以正确输出4
    30.     printf("/n**************");      
    31. }
     综合几个知识点:
    C语言中变量名st st1;代表一块内存区域,大小为8个字节。
    &st1,则是该内存区域的起始地址。
    st1+1,中的"1"是由st1的类型决定的。假设st1=0x0001,则st1+1为0x0009
    展开全文
  • 结构体变量和结构体指针作形参的区别 含结构体变量和结构体指针变量形参的函数调用 指针和数组作为函数形参的区别 概念 结构体变量是指将不同的数据类型整合成一个有机的整体,以便于调用。 struct Student { ...
  • 在初学C语言时到结构体总与数组联系在一起,这就形成了很多...结构体变量名就是变量名。 象int a一样,只是printf 处理不了结构体。通过 printf 输出结构体,结果是没有意义的(整个结构体复制堆栈中,按 照对应的...
  • C++结构体变量的初始化 C++对结构体变量可以在定义时指定初始值。 struct Student{ //自定义结构体变量 int num;//学号 char sex;//性别 int age;//年龄 }studeng1={1001,'M',24}; C++结构体变量的引用 C++...
  • 结构体:描述结构的组织形式,不分配内存 结构体变量定义:先定义结构体类型,再定义结构体...(4)结构体成员名与程序中变量名相同,不会混淆 结构体变量的引用: (1)不能对结构体变量整体赋值或输出,只能分...
  • 结构体变量

    2021-07-22 16:24:33
    定义 结构体和数组一样,是一种构造类型,但不同的是,可以使用结构体(Struct)来存放一组不同类型的数据。 格式 struct 结构体名 { ...类型名1 成员名1;...struct 结构体名 结构体变量名 ①可以先定义.
  • 结构体变量名的意义

    2017-08-31 19:09:00
    结构体作为一种自定义数据类型,结构类似于数组,但是结构体名与数组有很大的区别:数组是作为内存中固定不可修改的地址常量而存在,而结构体相当于int,double之类的系统内定类型,代表了一段内存空间的内容。...
  • 定义 struct InitMember { int first; double second; char* third; float four; }; 1 2 3 4 5 6 7 方法一:定义时赋值 struct InitMember test = {-10,3.141590,“method one”,0.25};...struct Ini...
  • 一、什么是结构体: 1、不同类型的变量集合被称为结构体 2、结构体的目的是为了描述一个对象,为了把一个对象描述清除必须要所出这个对象的很多属性,而为了表示这些属性就要用到不同的变量,而且变量不止一个。 二...
  • 结构体变量赋值给同类型的结构体变量     备注:程序遗漏返回值(可以正常编译),代码最后需要加return 0;。...
  • 无结构体结构体变量的使用 笔者使用的编译器是Visual C++ 6.0 阿里云盘: 下载 #include<stdio.h> struct { int age; int height; int weight; }person; // 在无结构体的结构体,person这个结构体...
  • 今天在写题目的时候出现了一处小错误,就是由于结构体指针和结构体变量没有区分清楚,接下来谈一谈这两者的区别; 2.内存空间上面的差别 假设有如下代码: typedef struct Stu { int age; }stu; 此时定义一个...
  • 结构体变量的引用

    千次阅读 2019-05-28 08:10:56
    定义了结构体变量之后就可以在程序中对他进行引用...结构体变量名.成员名 student1.num = 172041; 2 如果结构体类型中的成员也是一个结构体类型,则要使用若干个".",一级一级的找下去。因为只能对最低级的成员进行...
  • eval(['students(i).',str_var,'= marks(i,ii)']); 傻了,没想到还能这样做。。。看网上格式都是两个参数
  • C语言结构体结构体引例结构体变量的定义结构体变量的使用结构体变量作为函数参数结构体变量的初始化 结构体 引例 输出平均分最高的学生信息 #include <stdio.h> struct student { int num; char name[10]; ...
  • 怎样通过指向结构体变量的指针访问结构体变量中成员。 #include <stdio.h> #include <string.h> struct Student{ long int num; char name[15]; char sex; float score; }; int main()...
  • 引用结构体变量

    2013-12-25 14:56:00
    引用一个结构体变量有两种方式:通过结构体变量名和通过指向结构体的指针变量。与之对应的,引用结构体成员的标记形式也有两种,分别用运算符“.”“->”来标记。(1)由结构体变量名引用其成员的标记形式为: ...
  • 一 结构体和结构体变量的区别和联系 1 结构体是自定义的数据类型,代表一类事物。 2 结构体变量(实例)是具体的,实际的,代表一个具体变量。 二 结构体变量在内存的布局 三 如何声明结构体 1 基本语法 type...
  • 结构体变量名

    千次阅读 2017-03-02 09:04:49
    结构体变量名究竟是什么? 一 知识准备 1 什么是指针?指针是地址 (1)在32位系统中,存储任何一个指针所占用的内存都为四个字节。 (2)不同类型的指针步长不一样。 2 指针变量和指针所指向的内存空间变量...
  • 可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。 设p是指向结构体变量的数组,则可以通过以下的方式,调用指向的那个结构体中的成员: (1)结构体变量.成员。如,stu.num...
  • 前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针。 前面讲过,&student1 表示结构体变量 student1 的首地址,即 student1 第一个项的地址。如果定义一个指针...
  • 二、(1)结构体bai指针作为函数参数时,调用时传递的du是指向一个结构体变量的指针(即结构体变量的地址);结构体变量作为函数参数时,调用时传递的结构体变量本身。 (2)以下代码显示了调用时的区别 #incl
  • 通过指向结构体变量的指针变量输出结构体变量中成员的信息。解:程序:#include#includeint main(){struct Student{long int num;char name[20];char sex[10];float score;};struct Student stu_1;//定义struct ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,218
精华内容 53,287
关键字:

结构体的变量名是什么