C语言结构体Struct怎么使用?

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:

struct 结构体名{

结构体所包含的变量或数组

};

结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。

结构体定义:

第一种:只有结构体定义

struct stuff{

char job[20];

int age;

float height;

};

第二种:附加该结构体类型的“结构体变量”的初始化的结构体定义

//直接带变量名Huqinwei

struct stuff{

char job[20];

int age;

float height;

}Huqinwei;

也许初期看不习惯容易困惑,其实这就相当于:

struct stuff{

char job[20];

int age;

float height;

};

struct stuff Huqinwei;

第三种:如果该结构体只用一个变量Huqinwei,而不再需要用struct stuff yourname;去定义第二个变量。

那么,附加变量初始化的结构体定义还可进一步简化出第三种:

struct{

char job[20];

int age;

float height;

}Huqinwei;

把结构体名称去掉,这样更简洁,不过也不能定义其他同结构体变量了——至少我现在没掌握这种方法。

结构体变量及其内部成员变量的定义及访问。

要分清结构体变量和结构体内部成员变量的概念。

就像刚才的第二种提到的,结构体变量的声明可以用:

struct stuff yourname;

其成员变量的定义可以随声明进行: struct stuff Huqinwei = {"manager",30,185};

也可以考虑结构体之间的赋值:

struct stuff faker = Huqinwei;

//或 struct stuff faker2;

// faker2 = faker;

打印,可见结构体的每一个成员变量一模一样

如果不使用上边两种方法,那么成员数组的操作会稍微麻烦(用for循环可能好点)

Huqinwei.job[0] = 'M';

Huqinwei.job[1] = 'a';

Huqinwei.age = 27;

Huqinwei.height = 185;

结构体成员变量的访问除了可以借助符号".",还可以用"->"访问。

扩展资料:

结构体数组与结构体指针:

一个结构体变量中可以存放一组数据;如一个学生的学号、姓名、成绩等数据。如果有10个学生的数据需要参加运算显然应该用数组,这就是结构体数组结构体数组与以前介绍过的数值型数组不同之处:每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分量)项。

结构体指针和其他类型的指针都是一样的理解,在32位平台不管啥类型的指针都占4个字节的空间。

结构体指针就是指向结构体变量的指针;如果一个指针变量中保存了结构体变量的首地址,那么这个指针变量就指向该结构体变量.通过结构体指针即可访问该结构体变量,这与数组指针和函数指针的情况是相同的结构指针变量说明的一般形式为:

struct 结构体名 *结构体指针变量名struct student *p = &Boy; //假设事先定义了 struct student Boy。

参考资料来源:百度百科-struct






  • C璇█涓殑缁撴瀯浣(struct)璇﹁В
    绛旓細struct Student</ { char name[20]</; int num</; float score</;};鍒涘缓缁撴瀯浣撳彉閲忔椂锛屾垜浠娇鐢struct 缁撴瀯浣鍚嶇О 缁撴瀯浣撳彉閲忓悕;鐨勬牸寮忥紝姣斿鍒涘缓涓涓悕涓簊tu1鐨凷tudent缁撴瀯浣擄細struct Student stu1;</璁块棶缁撴瀯浣撴垚鍛樹娇鐢ㄧ粨鏋勬垚鍛樿繍绠楃.锛屽stu1.name銆傚鏋滄垚鍛樻槸宓屽缁撴瀯锛屽stu1.bi...
  • C璇█缁撴瀯浣揝truct鎬庝箞浣跨敤?
    绛旓細绗竴绉嶏細鍙湁缁撴瀯浣瀹氫箟 struct stuff{ char job[20];int age;float height;};绗簩绉嶏細闄勫姞璇ョ粨鏋勪綋绫诲瀷鐨勨滅粨鏋勪綋鍙橀噺鈥濈殑鍒濆鍖栫殑缁撴瀯浣撳畾涔 //鐩存帴甯﹀彉閲忓悕Huqinwei struct stuff{ char job[20];int age;float height;}Huqinwei;涔熻鍒濇湡鐪嬩笉涔犳儻瀹规槗鍥版儜锛屽叾瀹炶繖灏辩浉褰撲簬锛歴truct stuff{ cha...
  • C璇█涓struct鏄釜浠涔堟剰鎬 鎬庝箞鐢 鑳戒笉鑳介氫織鐐硅
    绛旓細struct鍏抽敭瀛楀湪C璇█涓捣鍒板垱寤虹粨鏋勪綋鐨勪綔鐢銆傚綋浣犳兂瑕佸畾涔変竴涓粨鏋勪綋鏃讹紝浣犲彲浠ヨ繖鏍峰啓锛氫緥濡傦紝鎴戜滑鏈変竴涓彨鍋"test"鐨勭粨鏋勪綋锛屽畠鐢变袱涓垚鍛樺彉閲忕粍鎴愶紝涓涓槸鏁存暟绫诲瀷鐨"a"锛屽彟涓涓篃鏄暣鏁扮被鍨嬬殑"b"銆傜粨鏋勪綋瀹氫箟濡備笅锛歴truct test { int a;int b;};鍦ㄤ娇鐢ㄨ繖涓粨鏋勪綋鏃讹紝浣犻渶瑕佸厛澹版槑涓涓粨鏋...
  • 璇锋暀C璇█涓struct鐨勭敤娉
    绛旓細涓嬮潰鏄竴浜涘叧浜缁撴瀯浣鐨勪娇鐢ㄥ疄渚嬶細1. 鍙湁缁撴瀯浣撳畾涔夛細cstruct stuff { char job[20]; int age; float height;};2. 鍒濆鍖栫粨鏋勪綋鍙橀噺锛歝struct stuff Huqinwei = {"manager", 30, 185.0};缁撴瀯浣撳畾涔夊彲浠ョ畝鍖栵紝濡傦細cstruct { char job[20]; int age; float height;} H...
  • C璇█缁撴瀯浣揝truct鎬庝箞浣跨敤?
    绛旓細鍦═urbo C涓紝缁撴瀯涔熸槸涓绉嶆暟鎹被鍨, 鍙互浣跨敤缁撴瀯鍙橀噺锛屽洜姝わ紝鍍忓叾瀹冪被鍨嬬殑鍙橀噺涓鏍凤紝鍦ㄤ娇鐢ㄧ粨鏋勫彉閲忔椂瑕佸厛瀵瑰叾瀹氫箟銆傚鏋滈渶瑕佸畾涔夊涓叿鏈夌浉鍚屽舰寮忕殑缁撴瀯鍙橀噺鏃剁敤杩欑鏂规硶姣旇緝鏂逛究锛屽畠鍏堜綔缁撴瀯璇存槑锛屽啀鐢ㄧ粨鏋勫悕鏉ュ畾涔夊彉閲忋
  • struct鍦c璇█涓敤娉
    绛旓細struct灏辨槸缁撴瀯浣锛岄氫織璁插氨鍍忔槸鎵撳寘灏佽锛屾妸涓浜涙湁鍏卞悓鐗瑰緛锛堟瘮濡傚悓灞炰簬鏌愪竴绫讳簨鐗╃殑灞炴э紝寰寰鏄煇绉嶄笟鍔$浉鍏冲睘鎬х殑鑱氬悎锛夌殑鍙橀噺灏佽鍦ㄥ唴閮紝閫氳繃涓瀹氭柟娉曡闂慨鏀瑰唴閮ㄥ彉閲忋傚叿浣撲竴鐐硅锛岀粨鏋勪綋鏄涓浜涘緢鏁g殑鏁版嵁鍙樺緱寰堟暣锛屼笉绠℃槸缃戠粶浼犺緭锛岃繕鏄嚱鏁颁紶鍙傦紝杩樻槸涓轰簡渚夸簬浣犺倝鐪肩鐞嗐C璇█鐗圭偣 C璇█鍖呭惈鐨...
  • struct鍦c璇█涓槸浠涔堟剰鎬?
    绛旓細涓銆缁撴瀯浣鐨勬蹇 鍦C璇█涓紝struct鏄竴绉嶅鍚堟暟鎹被鍨嬶紝鐢ㄤ簬缁勫悎澶氫釜涓嶅悓绫诲瀷鐨勬暟鎹」銆傚畠鍏佽绋嬪簭鍛樺垱寤鸿嚜瀹氫箟鐨勬暟鎹粨鏋勶紝杩欎簺缁撴瀯鍙互鍖呭惈澶氫釜涓嶅悓绫诲瀷鐨勫彉閲忥紝濡傛暣鏁般佹诞鐐规暟銆佸瓧绗︾瓑銆傜粨鏋勪綋鎻愪緵浜嗕竴绉嶇粍缁囨暟鎹殑鏂瑰紡锛屼娇寰楁暟鎹洿鍔犳湁搴忓拰鏄撲簬绠$悊銆備簩銆乻truct鐨勫0鏄庡拰浣跨敤 缁撴瀯浣撳彲浠ラ氳繃鍏抽敭瀛...
  • c璇█涓濡備綍瀹氫箟缁撴瀯浣?
    绛旓細鍦C璇█涓紝瀹氫箟缁撴瀯浣鍙互浣跨敤struct鍏抽敭瀛椼傜粨鏋勪綋鏄竴绉嶈嚜瀹氫箟鐨勬暟鎹被鍨嬶紝鍙互鍖呭惈澶氫釜涓嶅悓绫诲瀷鐨勬垚鍛樺彉閲忋備互涓嬫槸涓涓畝鍗曠殑缁撴瀯浣撳畾涔夌殑渚嬪瓙锛氬湪杩欎釜渚嬪瓙涓紝鎴戜滑瀹氫箟浜嗕竴涓悕涓篠tudent鐨勭粨鏋勪綋锛屽寘鍚笁涓垚鍛樺彉閲忥細name銆乤ge鍜宻core銆傜劧鍚庡湪main鍑芥暟涓垱寤轰簡涓涓猄tudent绫诲瀷鐨勭粨鏋勪綋鍙橀噺stu1锛屽苟鍒濆...
  • c璇█缁撴瀯浣鍙橀噺鎬庝箞浣跨敤?
    绛旓細1. 鍏堝畾涔夌粨鏋勭被鍨嬶紝鍐嶅畾涔夌粨鏋勫彉閲忋struct book /* 瀹氫箟缁撴瀯浣绫诲瀷 */ { char bookname[20];float price;char publisher[20];char author[10];} ;struct book mybook, storybook;鐢ㄨ繖绉嶆柟娉曞畾涔夌粨鏋勫彉閲忥紝鏄渶甯哥敤鐨勬柟娉曪紝浣嗛』娉ㄦ剰涓嶈兘鐪佺暐鍏抽敭瀛椻 struct 鈥濄傝繕鍙互鍦ㄥ畾涔夌粨鏋勫彉閲忕殑鍚屾椂...
  • C璇█涓struct鏄釜浠涔堟剰鎬 鎬庝箞鐢 鑳戒笉鑳介氫織鐐硅
    绛旓細鍦═urbo C涓, 缁撴瀯涔熸槸涓绉嶆暟鎹被鍨, 鍙互浣跨敤缁撴瀯鍙橀噺, 鍥犳, 璞″叾瀹 绫诲瀷鐨勫彉閲忎竴鏍, 鍦ㄤ娇鐢ㄧ粨鏋勫彉閲忔椂瑕佸厛瀵瑰叾瀹氫箟銆傚畾涔夌粨鏋勫彉閲忕殑涓鑸牸寮忎负:struct 缁撴瀯鍚 { 绫诲瀷 鍙橀噺鍚;绫诲瀷 鍙橀噺鍚;... } 缁撴瀯鍙橀噺;缁撴瀯鍚嶆槸缁撴瀯鐨勬爣璇嗙涓嶆槸鍙橀噺鍚嶃 绫诲瀷涓虹浜岃妭涓墍璁茶堪鐨勪簲绉嶆暟鎹被鍨(鏁村瀷銆...
  • 本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网