程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 結構體,c語言結構體

結構體,c語言結構體

編輯:關於C語言

結構體,c語言結構體


原文鏈接:http://www.orlion.ga/758/

struct point {
    double x, y;
};

    這樣定義了point這個標識符,既然是標識符,那麼它的命名規則就和變量一樣,但是不表示一個變量而是表示一個類型,這種標識符在C語言中成為Tag,整個struct point {double x , y;} 可以看做是一個類型名,就像int或者是double一樣,只不過這是個復合類型,如果用這個類型名來定義變量,可以寫:

struct point {
    double x , y;
} p1 , p2;

    這樣p1和p2就是變量名,變量定義後邊要加上“;”,另外結構體定義(如第一段代碼)後邊";"不能省略。

    不管用那種方式來定義point這個Tag,以後都可以直接使用struct point來替代類型名了,例如可以這樣再重新定義兩個變量:

struct point p3 , p4;

    如果在定義結構體類型的時候同時定義了變量,也可以不必寫Tag,例如:

struct {
    double x , y;
} p1 , p2;

    結構體變量可以用"."運算符來訪問其中的成員:

#include <stdio.h>

int main(void)
{
    struct point{
        double x , y;
    } p;
    double x = 1.0;
    p.x = x;
    z.y = 2.0;
    
    struct point p2;
    
    printf("z的橫坐標是:%f,縱坐標是%f\n" , z.x , z.y);
    
    return 0;
}

    結構體也可以在定義時初始化,如:

struct point p = {1.0 , 2.0};

    如果括號中的數據比結構體的成員少,未指定的成員用0來初始化,就像未初始化的全局變量一樣。結構體賦值與基本數據類型有些不同,需要注意一下是錯誤的:

struct point p;
p = {1.0 , 2.0};

    但是struct point p1 = {1.0 , 2.0}; struct point p2 = p1;p1 = p2;這樣可以。

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved