zoukankan      html  css  js  c++  java
  • 指向结构体变量的指针

    定义:

    结构体变量的指针就是该变来那个所占据的内存段的起始地址。可以设一个指针变量,来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。

    设p是指向结构体变量的数组,则可以通过以下的方式,调用指向的那个结构体中的成员:

    (1)结构体变量.成员名。如,stu.num。

    (2)(*p).成员名。如,(*p).num。

    (3)p->成员名。如,p->num。

    #include<iostream>
    #include<string>
    using namespace std;
    struct Candidate{
    	string name;
    	int count;
    };
    int main(){
    	Candidate c_leader[2]={"Tom",5,"Marry",8};
    	Candidate *p1,*p2;
    	p1=c_leader;
    	cout<<(*p1).name<<":"<<(*p1).count<<endl;
    	p2=&c_leader[1];
    	cout<<p2->name<<":"<<p2->count<<endl;
    	return 0;
    }

    	p1=c_leader;

    说明,结构体数组也和其他数组一样,一维数组的数组代表首个元素的地址

    我们了解到,结构体中可以包含很多类型的成员变量,那么可否包含指针变量成员呢?答案是可以的。

    那么是否也可以包含指向同类结构的结构体变量呢?当然可以,链表就是应用了这个原理。

    #include<iostream>
    #include<string>
    using namespace std;
    struct Candidate{
    	string name;
    	int count;
    	Candidate *next;//定义了指向Candidate类型变量的指针
    };
    int main(){
        Candidate c_leader[3];
    	c_leader[0].name="Tom";
    	c_leader[0].count=5;
    	c_leader[0].next=&c_leader[1];
    	c_leader[1].name="Nick";
    	c_leader[1].count=9;
    	c_leader[1].next=&c_leader[2];
    	c_leader[2].name="Jim";
    	c_leader[2].count=10;
    	c_leader[2].next=NULL;
    	Candidate *p=c_leader;
    	while(p!=NULL){
    		cout<<p->name<<":"<<p->count<<endl;
    		p=p->next;
    	}
    	return 0;
    }



  • 相关阅读:
    时间段内随机生成日期函数
    已知目标qps跟并发用户数20,压测平均响应时间实例
    并发数 = QPS*平均响应时间
    性能测试实战-XYB项目-内网访问
    linux安装jmeter
    word设置
    nginx安装【windows下安装】
    mac 修改权限为当前用户用户组
    兼容性测试
    linux 的一些命令
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3253802.html
Copyright © 2011-2022 走看看