5/29 c的结构体变量

1、结构体变量的初始化和引用。

在定义结构体变量的时候,可以对它初始化,即赋予初始值。然后再引用这个变量。

(1)在定义结构体变量时可以对它的成员初始化。初始化列表是用花括号括起来的一些常量,这些常量一次赋给结构体变量的成员。注意,我们要对结构体变量初始化,而不是对结构体类型初始化。

(2)可以引起结构体变量中成员的值,引用方式为  结构体变量名,成员名。如student1.num=10010;“.”是成员运算符,他在所有的运算符中的运算符的优先级最高,因此可以吧student1.num作为一个整体来看,

相当于一个变量。上面赋值语句的作业是讲整数10010赋值给student1中成员的num。

值得注意的是,不要企图输出结构体变量名来达到输出结构体变量所有成员的值。printf(“%s/n”,student1);这是错误的,不能企图给结构体变量名输出所有成员的值。

(3)如果成员本身有属于一个结构体类型,则要用若干个成员运算符,一级一级的找到最低的一级成员。只能对最低的成员进行复制或存取以及运算。

如 student1.num

student1.birthday.month是错误的,  不能用  student1.birthday来访问student1变量中的成员birthday,因为birthday本身是一个结构体的成员。

(4)对结构体变量的成员可以像普通一样进行各种运算,根据其类型巨大可以进行的运算。

(5)同类的结构体变量可以互相赋值。如 student1=student2

(6)可以引用结构体变量成员的地址,也可以引用结构体变量的地址。

原文地址:https://www.cnblogs.com/serious123/p/10947134.html

时间: 2024-11-07 05:03:37

5/29 c的结构体变量的相关文章

使用结构体变量存储学生姓名和课程成绩,计算平均分及查找不及格同学姓名及分数

1 struct Student //声明Student类型结构体变量 2 { 3 char name[20]; 4 int score[5]; 5 }; 6 typedef struct Student Stu; 7 8 void main() 9 { 10 11 Stu stu[3]; 定义Student类型变量数组 12 int i,j; 13 for(i=0;i<3;i++) //输入学生姓名和成绩 14 { 15 printf("please input student[%d]'

在C代码中将结构体变量作为参数传递效率忒低

在C语言编程中,我们几乎不可能看见有人将一个结构体变量作为参数进行传递,因为效率太低了.本文尝试从反汇编的角度给出其中的原因. 对于C语言来说,所有的参数传递都是值传递.如果一个变量为指针,那么传递的就是指针变量的值(即某个内存地址). 那么,如果一个参数是结构体变量(包括多个成员),怎么从caller传递到callee呢? 先看下面的代码片段: o foo1.c 1 #define FALSE 0 2 #define TRUE (!0) 3 4 typedef struct point_s {

C语言 指向结构体变量的指针

一个指向变量的指针表示的是占内存中起始位置 一个指向结构体的变量的指针表示的是这个结构体变量占内存中的起始位置,同样它也可以指向结构体变量数组 定义结构体变量的指针: //假设已有一个结构体名为Student struct Student *pStruct // 结构体类型 * 指针名; 通过指针来引用结构体中的成员,有三种方式 demo: 1 # include <stdio.h> 2 # include <stdlib.h> 3 /* 4 1.使用->引用结构体成员 5

第九章结构体变量实验报告

实验项目: 1.结构体变量的应用 2.结构体数组的应用 3.共用体的应用 4.结构体指针的应用 姓名:谢丽萍  实验地点:教学楼514教室  实验时间2019.6.26 一.本章要点 1.对结构体和共用体的概念进行区分,学会定义变量和使用变量. 2.结构类型的定义可以嵌套,结构类型与联合类型的定义也可以相互嵌套,只是要注意被嵌套的类型必须先有定义. 3.将指针.数组与结构体或共用体相结合来实现数据的输入输出. 4.要了解各种函数的作用,例如:abort(),strmcmp()等. 二.实验内容

Go创建及结构体变量是指定字段值

package main import ( "fmt" ) type Stu struct { Name string Age int } func main() { //方式1 //在创建结构体变量时,就直接指定字段的值 var stu1 = Stu{"小明", 19} // stu1---> 结构体数据空间 stu2 := Stu{"小明~", 20} //类型推导并省略var //在创建结构体变量时,把字段名和字段值写在一起, 这种写

全局结构体变量的初始化以及将结构体变量转换为char类型输出问题

#include<stdio.h> #include<stdlib.h> struct node{ int a; int b; char c; char d; }; /*struct node A; 全局变量不能在这儿进行初始化,令我震惊啊,错误让你迷茫到死 A.a=1; A.b=2; A.c='a'; A.d='c';*/ //struct node A={1,2,'a','c'};但是这种写法可以 1:初始化和赋值不是一个概念. 2:// 在全局空间(即函数体之外)只能执行数据

编程题:展示对整个结构体变量的引用的其他方法。功能:对整个结构体变量进行操作。

编程题:展示对整个结构体变量的引用的其他方法.功能:对整个结构体变量进行操作. #include<stdio.h> void main() { struct person { char name[20]; char sex; struct date {int year; int month; int day; }birthday; float height; }per1,per2={"LiPing","M",2013,12,15,175.5}; per1

编程题:对结构体变量中成员的引用展示。

编程题:对结构体变量中成员的引用展示. #include<stdio.h> void main() { struct person { char name[20]; char sex; struct date {int year; int month; int day; }birthday; float height; }per; printf("Enter the name:"); gets(per.name);per.sex='M'; per.birthday.year

结构体变量的sizeof计算

结构体字节对齐准则: 1. 结构体变量的首地址能够被其最宽基本类型成员的大小所整除: 2. 结构体每个成员相对于结构体首地址的偏移量都是当前成员大小的整数倍,如有需要编译器会在成员之间加上填充字节: 3. 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节. 4. 在嵌套结构中需要把内部‘打散'后再进行对齐计算. // sizeof(结构体).cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #inc