結構體成員指標指向data區或棧區

2021-10-07 18:02:21 字數 1251 閱讀 7711

struct  student

;

這裡我們定義了乙個結構體

第一種方式指向data區

struct student s; 

s.number=10;

s.score=20;

strcpy

(s.name,

"mike");

printf

("%d %s %d\n"

,s.number,s.name,s.score)

;

前面的number和score都沒有問題,這裡我們將s.name用strcopy函式將文字常量區的「mike」字串拷貝到s.name所指向的記憶體中去,因為name本身就是指標,字串常量就是首元素位址,故而可以這樣操作.

第一種方式的不同寫法

struct student s; 

s.number=10;

s.score=20;

s.name=

"mike"

;printf

("%d %s %d\n"

,s.number,s.name,s.score)

;

struct student *s; 

s->number=10;

s->score=20;

strcpy

(s->name,

"mike");

printf

("%d %s %d\n"

,s->number,s->name,s->score)

;

第二種方式指向棧區

struct student p;

char buf[

100]

; p.number=10;

p.score=1;

p.name=buf;

printf

("%d %s %d"

,p.number,p.name,p.score)

;

這裡我們定義了乙個字元型的陣列,將name指向的棧區的buf

以上有些**無法在dev通過,可以用gcc編譯通過,不是**有問題!!!

結構體成員 陣列或指標

c語言中沒有字串型別,只能使用字元陣列表示字串。當定義結構體時,成員是字元陣列時,在外部給該成員賦值,不能使用 結構體把變數名.成員名 ssss 直接列印輸出結構體成員陣列名,輸出的是位址。可以使用字串函式 strcpy 給字元陣列 相當於字串 複製乙個字串。struct student4 使用這種...

指向結構體的指標和指向結構體指標的指標

剛才用結構體的指標,操作記憶體出錯了,記錄一下。struct t ptr 是指向乙個結構體的指標,也可以當做乙個結構體陣列來用。可以把結構體當做 int 來看,int 型別即可以指向乙個整數,也可以指向陣列。struct t ptr,說白了 就是乙個結構體指標的陣列,陣列內都是指標,還要分配記憶體。...

指向結構體的指標和指向結構體指標的指標

例如,struct t ptr 是指向乙個結構體的指標,也可以當做乙個結構體陣列來用。可以把結構體當做 int 來看,int 型別即可以指向乙個整數,也可以指向陣列。struct t ptr,說白了 就是乙個結構體指標的陣列,陣列內都是指標,還要分配記憶體。1,結構體指標用法一 strusysinf...