C語言結構體指標

2021-10-01 05:51:37 字數 3277 閱讀 3803

在使用指標值得注意的是對結構體指標的使用:

例如:

struct bookmessage

;

定義乙個指標引數的結構體

void importmssage(bookmessage *pbook){}

那麼如何用該指標輸出該資訊呢?

pbook->name vs pbook->id?

void

importmssage

(bookmessage *pbook)

&的優先順序低於->

scanf()在vs2013裡報錯,編譯器提示要用scanf_s代替;

scanf_s()引數與scanf()不同;

例如scanf(「%s」,&name,n),整形n為name型別的大小,如果name是陣列,那n就是該陣列的大小,即佔的空間。

隨帶附上本次發現錯誤時寫的工程:乙個書庫資訊輸入與列印資訊的**:環境—vs2013

main.c

#include

"book.h"

intmain

(void

)printf

("/*******************全部書籍************************/\n");

printallmssage

(book,

sizeof

(book)

/sizeof

(book));

max_price =

maxprice

(book,

sizeof

(book)

/sizeof

(book));

printf

("\n******************最大**第%d本*******************/\n"

,max_price+1)

;printmssage

(book[max_price]);

system

("pause");

return0;

}

book.c

#include

"book.h"

/************************************

function:顯示字元陣列元素

parameter:arr--陣列,len--陣列大小

return:void

date:2019-12-3

author:殘夢

************************************/

void

arrayprintchar

(char p,

int len)

putchar

('\n');

}/************************************

function:輸入單本書籍資訊

parameter:pbook--bookmessage型指標

return:void

date:2019-12-3

author:殘夢

************************************/

void

importmssage

(bookmessage *pbook)

/************************************

function:列印單本書籍資訊

parameter:pbook--bookmessage型結構體

return:void

date:2019-12-3

author:殘夢

************************************/

void

printmssage

(bookmessage pbook)

/************************************

function:列印全部書籍資訊

parameter:pbook--bookmessage型結構體

return:void

date:2019-12-3

author:殘夢

************************************/

void

printallmssage

(bookmessage pbook,

int size)

}/************************************

function:計算書籍**最大值的下標

parameter:pbook--bookmessage型結構體,size--書籍量

return:void

date:2019-12-3

author:殘夢

************************************/

intmaxprice

(bookmessage pbook,

int size)

return max_num;

}

book.h

#ifndef _book_h_

#define _book_h_

#include

#include

#include

#define _crt_secure_no_deprecate

struct bookmessage

;typedef

struct bookmessage book;

extern

void

importmssage

(bookmessage *pbook)

;extern

void

printmssage

(bookmessage pbook)

;extern

void

printallmssage

(bookmessage pbook,

int size)

;extern

intmaxprice

(bookmessage pbook,

int size)

;#endif

效果圖:

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...

C語言 結構體指標

asp.net unity開發 net培訓 期待與您交流!一.結構體 1.什麼是結構體 當 乙個整體 由多個資料構成時,我們可以用陣列來表示這個整體,但是陣列內部的每乙個元素都必須是相同型別的資料。在實際應用中,我們通常需要由不同型別的資料來構成乙個整體,比如學生這個整體可以由姓名 年齡 身高等資料...

C語言 結構體指標

指向結構體物件的指標變數即可以指向結構體變數,也可指向結構體陣列中的元素。指標變數的基型別必須與結構體變數的型別相同。如 struct student pt pt可以指向struct student型別的變數或陣列元素。典例 通過結構體變數的指標變數輸出結構體變數成員中的成員的資訊。解題思路 1 怎...