结构体 竟然可以是一个指针

struct namect {
    char * fname;    //使用指针,而非数组
    char * lname;
    int letters;
};
void getinfo(struct namect * pst){
    char temp[8];
    gets(temp);
    pst -> fname = (char *)mallco(strlen(temp) + 1);
}
时间: 2024-12-28 10:42:41

结构体 竟然可以是一个指针的相关文章

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节 { printf("\n%p,%d", p, *p); } getchar(); } 指针数组 #inclu

仿函数--创建结构体或类的内部函数指针

body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bold; } h3 { fon

c结构体里的数组与指针

/* 訪问成员数组名事实上得到的是数组的相对地址.而訪问成员指针事实上是相对地址里的内容 */ struct buf_str { int length; char buf[0]; }; struct foo { buf_str* pbuf; }; void test_funny() { foo f = {0}; printf("%x\n", f.pbuf); printf("%x\n", &f.pbuf->length); printf("%

非旋 treap 结构体数组版(无指针)详解,有图有真相

非旋  $treap$ (FHQ treap)的简单入门 前置技能 建议在掌握普通 treap 以及 左偏堆(也就是可并堆)食用本blog 原理 以随机数维护平衡,使树高期望为logn级别, FHQ 不依靠旋转,只有两个核心操作merge(合并)和split(拆分) 所谓随机数维护平衡就是给每个节点一个随机值 key (下文中没有加随机的就代表是真实权值), 然后整棵树中 key 值要满足小(大)根堆的性质(也就是heap), 同时也要满足平衡树(tree)的性质(也就是每个节点左子树内节点真实

c语言中的结构体为值类型,当把一个结构体赋值给另一个结构体时,为值传递

#include <stdio.h> int main() { struct person { int age; }; struct person p1 = {19}; //值传递,将p1中所有成员变量的值赋值个p2中对应的成员变量 struct person p2=p1; //改变p1的成员变量的值,不会影响p2中对应成员变量的值 p1.age = 20; printf("p1.age=%d\n",p1.age); printf("p2.age=%d\n&quo

c语言中结构体指针

1.指向结构体的指针变量: C 语言中->是一个整体,它是用于指向结构体,假设我们在程序中定义了一个结构体,然后声明一个指针变量指向这个结构体,那么我们要用指针取出结构体中的数据,就要用到指向运算符"->". 举例说明: struct SunLL { int a; int b; int c; }; struct SunLL  * p;               //定义结构体指针 struct SunLL A = {1,2,3};    //定义一个SunLL类型的变量A

结构体详解

1 概述 C语言允许用户自己指定这样一种数据结构,它由不同类型的数据组合成一个整体,以便引用,这些组合在一个整体中的数据是互相联系的,这样的数据结构称为结构体,它相当于其它高级语言中记录. 声明一个结构休类型的一般形式如下: struct 结构体名 {成员列表}; 结构体名,用作结构体类型的标志,它又称 结构体标记,大括号内是该结构体中的各个成员,由它们组成一个结构体,对各成员都应进行类型声明如: 类型名 成员名; 也可以把 成员列表称为 域表,第一个成员也称为结构体中的一个域.成员名定名规则写

合适使用结构体

在设计结构体时,千万不要再结构体内部定义数组, 因为这会阻碍其应用, 对于如果要使用的地方,数据元素个数小于定义的数组长度,有些浪费. 对于数据元素个数大于定义的数组长度,又显得不够. 最合适的办法是, 在结构体中, 定义一个指针, 之后根据具体需要再定义一个数组,使用这个数组初始化结构体中的指针. 这样,就可以根据需要自行选择合适大小的数组来使用. 尤其在嵌入式编程(内存受限系统),最大限度的使用内存,是很重要的一件事情. 注: linux中有些结构体,要使用很多函数指针.于是专门定义一个包含

当结构体遇上宏定义,以及函数指针的高级写法(结构体中能用宏定义一个函数?)

一.结构体中可以定义一般的宏定义 如: struct aaa{   #define STATUS_1 100   #define STATUS_2 200   #define STATUS_3 300   ........}: 首先,这里的宏定义是在预编译阶段完成的,编译器此时并不知道什么结构体,所以这些宏是全局可见的.   一个宏定义,如果写在结构体之内,即使与结构体之外的宏定义名字重复了最多是编译警告.可是如果不在结构体之内,名字重复可肯定是error.(未证实,可以做实验,而且可以把两处的