精华内容
下载资源
问答
  • C语言结构体数组赋值与取值
    #include<stdio.h>
    struct st
    {
    	int x;
    	int *y;
    }*p;
    int dt[4]={10,20,30,40};
    struct	st aa[4]={{50,&dt[0]},{60,&dt[0]},{60,&dt[0]},{60,&dt[0]}};
    int main()
    {
    	p=aa;
        printf("%d\n",++(p->x));	//①
    	printf("%d\n",*(p->y));		//②
        printf("%d\n",++((++p)->x));//③
        printf("%d\n",*(p->y));		//④
        printf("%d\n",*(++p->y));	//⑤
        printf("%d\n",++*(p->y));	//⑥
    }

    首先 了解aa这个结构体数组怎么赋值

    aa[4]={{50,&dt[0]},{60,&dt[0]},{60,&dt[0]},{60,&dt[0]}}; 
    //完整写应该是这样  分别对应 aa[0].x,aa[0].y,aa[1].x,aa[1].y,aa[2].x,aa[2].y,aa[3].x,aa[3].y,
    

    赋值完把aa首地址给了p;
    ① p此时指向aa[0]的位置,然后取x的值 为 50 输出前自增得到51

    ②取y的值 因为y是指针所以 \*(p->y)会得到dt[0]的值为10;

    ③p指针自增指向了aa[1]的首地址,然后取x的值为60,自增后输出的到61

    ④取y的值 因为y是指针所以 \*(p->y)会得到dt[0]的值为10;

    ⑤->指针成员取值符号优先级高于++所以先取y的地址为dt[0]的地址,此时地址自增变为dt[1]的地址然后取值得到20(注意此时p指针指向aa[2]的首地址,aa成员中y也是指针此时aa[2].y经过本式子的自增已经指向了dt[1])

    ⑥此时p指向aa[2]的首地址,->指针成员取值符号先取y的地址为dt[1]的地址,取值得到20然后++自增得到21

    (5.6两条的叙述由于在写文的时候直接6复制了5所以未仔细斟酌,此处特别感谢评论区朋友的帮助)

    展开全文
  • c语言 结构体数组赋值 //**创建结构体** #include<stdio.h> struct Class{ int id; char name[10]; }; //******结构体数组赋值 int main(){ int m; //定义结构体数组的长度所需变量 int i; printf(...

    c语言 结构体数组的赋值

    //**创建结构体**
    #include<stdio.h>
    struct Class{
         int id;
         char name[10];
    };
    //******结构体数组的赋值
    int main(){
         int m;   //定义结构体数组的长度所需变量
         int i;   
         printf("list size is :  ");          //定义结构体数组的长度
        scanf("%d",&m);
        struct Class class_1[m];    //定义结构体数组变量class_1,变量类型为结构体struct Class
         struct Class *p;         //定义结构体指针
         p=&class_1[0];         //结构体指针指向结构体数组的第一个数组class_1[0];
         //************* 
        for(i=0;i<m;i++){            //此循环是对结构体数组class_1每一个的成员的赋值
            printf("plz enter his ID : ");
            scanf("%d",&p[i].id);
            printf("plz enter his name : ");
            scanf("%s",&p[i].name);
            p=&p[i];
            printf("Sceesslly insert! his id is : %d and his name is %s\n",(*p).id,(*p).name);
            
        }
        }
    

    以上是结构体数组的赋值,由于本人能力有限,若有不足,望各位指正。

    展开全文
  • 一:结构体 方式1 #include<bits/stdc++.h> using namespace std; struct Node{ string name; int grade; }; int main(){ Node * node = new Node(); node->grade = 100; node->name = "wyj"; ...

    一:结构体

    方式1

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
    	string name;
    	int grade;
    };
    
    
    int main(){
    
    	Node * node = new Node();
    	node->grade = 100;
    	node->name = "wyj";
    	
    	Node *node1 = new Node();
    	node1->grade = 200;
    	node1->name = "wnd";
    	
    	cout << node->name << ' ' << node->grade << endl;
    	cout << node1->name << ' ' << node1->grade;
    	
    	
    } 
    

    方式二

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
    	string name;
    	int grade;
    };
    
    
    int main(){
    	
    	//如果想要赋值,那么我们就先申请一个结点 
    	Node node;
    	node.grade = 100;
    	node.name = "王大爷";
    	
    	cout << node.grade << ' ' << node.name << endl;; 
    	
    	//再来一个结点 但是结点的名称不同 
    	Node node1;
    	node1.grade = 100;
    	node1.name = "王二爷";
    	
    	cout << node1.grade << ' ' << node1.name; 	
    } 
    

    二:结构体数组

    方式一

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
    	string name;
    	int grade;
    }node[100];
    
    int main(){
    	
    	//因为这里我们是已经定义好结构体数组的大小所以直接赋值即可 
    		
    	for(int i = 0; i < 2; i++){
    		cin >> node[i].name >> node[i].grade;
    	}
    	
    	for(int i = 0; i < 3; i++){
    		cout << node[i].name << ' ' << node[i].grade << endl;
    	}	
    } 
    

    方式二:

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
    	string name;
    	int grade;
    };
    
    int main(){
    	
    	Node * stu = new Node[100];
    		
    	for(int i = 0; i < 2; i++){
    		cin >> stu[i].name >> stu[i].grade;
    	}
    	
    	for(int i = 0; i < 2; i++){
    		cout << stu[i].name << ' ' << stu[i].grade << endl;
    	}	
    } 
    
    展开全文
  • 说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:#include struct student{int a;int b ;int c ;};struct student array1[1000] ;int main(void){int i ;for(i = 0 ; i < ...

    说到C语言结构体数组的同时赋值,许多人一想就会想到用以下的这种方法,咱们来写一个例子:

    #include

    struct student

    {

    int a;

    int b ;

    int c ;

    };

    struct student array1[1000] ;

    int main(void)

    {

    int i ;

    for(i = 0 ; i < 1000 ; i++)

    {

    array[i].a = 1 ;

    array[i].b = 2 ;

    array[i].c = 3 ;

    }

    for(i = 0 ; i < 1000 ; i++)

    {

    printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,

    i, array[i].a ,i, array[i].b ,i, array[i].c);

    }

    return 0 ;

    }

    这样就可以实现对结构体数组同时赋值了。

    阅读Linux内核源代码的时候看到了,原来C语言还有一种更少人知道的方法,使用 "..." 的形式,这种形式是指第几个元素到第几个元素,都是一样的内容。这种用法在标准C上也是允许的,没有语法错误,我们来看看它是怎么用的:

    #include

    struct student

    {

    int a;

    int b ;

    int c ;

    };

    //对第0个数组到第999个结构体数组同时赋值一样的内容

    struct student array[1000] = {

    [0 ... 999] = {

    .a = 1 ,

    .b = 2 ,

    .c = 3 ,

    }

    };

    int main(void)

    {

    int i ;

    //输出赋值后的数值

    for(i = 0 ; i < 1000 ; i++)

    {

    printf("array[%d].a:%d array[%d].b:%d array[%d].c:%d \n" ,

    i, array[i].a ,i, array[i].b ,i, array[i].c);

    }

    return 0 ;

    }

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接

    展开全文
  • 在对结构体变量中的一个成员进行赋值时,发现不能够正常赋值,查看了下访问方式,指针->成员名也没有问题,后面猛然醒悟:对于字符数组的“赋值”可不能这么简单,首先其数组名指代首元素地址,首先这个地址所...
  • 目录 一、按照成员变量进行赋值(麻烦,好理解,字符串赋值需要strcpy) 二、对数组整体进行赋值。(一次性需要把所有的都添加进去,...(2)调用函数赋值,我们知道,结构体数组中,数组有多个元素,每个数组元素...
  • C语言结构体数组定义及赋值

    千次阅读 2021-08-03 17:10:17
    做了一个小的例子: #include int main() { struct Link { int LinkId; int LinkLen; int NxtLnkId; }Lnk[3]; Lnk[0].LinkId = 1;... printf("结构体数组赋值完成。"); } 结构体数组的赋值情况:
  • 结构体数组中的字符指针循环赋值的问题//002.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"malloc.h"#include"string.h"intmain(intargc,char*argv[]){structstu{intnum;...
  • matlab之结构体数组struct

    千次阅读 2020-12-21 23:05:45
    以下内容来自于:...1.结构数组的创建MATLAB提供了两种定义结构的方式:直接法和使用struct函数法。1. 使用直接引用方式定义结构与建立数值型数组一样,建立新st...
  • 1.首先定义结构体数组:typedef struct BleAndTspRmtCmd{char terminal[3];char note[3];char rmtCmd[10];char cmdPropt[24];};BleAndTspRmtCmd为结构体名,可以通过这个结构体名定义其他结构体变量,...
  • 原Matlab新建structstruct在matlab中是用来建立结构体数组的。通常有两种用法:s=struct('field1',{},'field2',{},...)这是建立一个空的结构体,field1,field2是域名称;s=struct('field1',values1,'field2',values...
  • 使用repmat是目前为止预分配结构体的最有效的方法:N = 10000;b = repmat(struct('x',1), N, 1 );这是使用Matlab 2011a比预分配通过索引,〜10倍更快N = 10000;b(N).x = 1索引方法仅略微快于不预分配。No ...
  • % achieves the same as deal(newVals{:})唯一的其他方式我知道如何做(没有foor循环)是使用arrayfun来迭代数组中的每个结构:% make a struct arrayarr = [ struct('val',0,'id',1), struct('val',0,'id',2),...
  • 结构体变量以及结构体数组 1、概述 C 语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级...
  • 派生数据类型和结构体 所谓派生数据类型指的就是,程序设计人员根据数据特征自己定义的、由不同类型数据成分组成的数据类型,它把复杂的数据用一种抽象和形式化的方式描述出来,实际上并未进行实质性的存储空间分配...
  • Keil 结构体变量初始化tujidi1csd25142016-09-30一维数组结构体数组结构体数组,通过改变指针类型改变访问数组的方式toto129748850424332014-08-01mfc结构体指针、结构体数组指针u01399024812292014-12-14memset...
  • 1.趁电脑不注意先随便定义一个结构体。 struct Student { std::string name; //名字 double score; //分数 int NubSort; //因成绩而即将拍的序! }; 2.用该结构体添加几组名字和成绩。 std::map<int, ...
  • C语言第11题:结构体数组的定义与使用 + 结构体数组排序C语言第11题:结构体数组的定义与使用 + 结构体数组排序注意:一下赋值是不能使用的但是在结构体中是可以直接进行赋值操作的st[1] = st[2];printf(“姓名 = %s...
  • 一、结构体 数组 作为函数参数 ( 数组 在 栈内存创建 )、 二、完整代码示例
  • 继续往前追溯,查到权值数组的时候发现需要用的权值全部都是错误的,最初考虑是赋值出了问题,但试了好几种方法也没有解决,即使直接赋值都没用,权值数组一直都是随机值。 因为神经网络的参数是用数组导入的,...
  • 一、结构体的定义struct student{ //struct 结构体名long studentID; //数据类型 成员名1char studentName[10]; //数据类型 成员名2int scoreMath; //数据类型 成员名3};二、结构体变量的定义1先声明结构体模板,再...
  • C++结构体数组一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组结构体数组与以前介绍过的数值型数组的不同之处在于...
  • 结构体在堆区分配内存二、结构体数组1.结构体数组在栈区分配内存2.结构体数组在堆区分配内存(2种方法)总结 一、结构体 1.结构体在栈区分配内存 程序目的:定义一个结构体变量,包含姓名和年龄。 实现方式:(1)...
  • 结构体数组

    2021-04-04 17:25:09
    显然就要用数组,因为数组是存放同一类型的数据,这里的数组类型为结构体,所以称为结构体数组结构体数组和整型数组都差不多,不同的地方就在于每个数组元素都是一个结构体类型的数据,它们都有各自的成员项。 ...
  • 数组定义:char acBuf[sizeof(TRANS_HEAD_S) + sizeof(USER_HEAD_S) + 4] = {0};结构体定义:typedef struct{int iOne;int iTwo;int iThr;}TRANS_HEAD_S;typedef struct{int iUser;}USER_HEAD_S; 1、实现结果:acBuf...
  • C++结构体数组

    2021-11-28 18:55:33
    【问题描述】定义一个结构体数组,存放3为职工的信息,并计算最高的工资值及所有职工工资的合计值。 【输入形式】输入结构体数组中各元素的成员 【输出形式】输出三个成员的在最高工资和工资合计值,成员包括name、...
  • c语言结构体数组初始化

    千次阅读 2021-05-22 13:03:19
    有关结构体数组初始化的问题struct _m_usmart_nametab usmart_nametab[]={#if USMART_USE_WRFUNS==1 //如果使能了读写操作(void*)read_addr,"u32 read_addr(u32 addr)",(void*)write_addr,"void write_addr(u32 addr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 82,652
精华内容 33,060
关键字:

结构体数组赋值