例如要定義一我的須要複雜的各類變量結合在一塊兒就須要結構體
是咱們本身創造出來的類型java
爲結構體關鍵字即結構體中須要用到struct
用法:
struct Book
{
char name[20];
int price;
}; //;不可缺乏
注意:
結構體中不能直接賦值
在主函數中使用
struct Book b1 = {"C語言程序設計", 55};
輸出:
printf("書名:%s\n", b1.name);//C語言程序設計
printf("價格:%d\n", b1.price);//55
b1.name = "java"; //報錯由於name爲一個數組
同理正常的
char ch[] = "xzc";
ch[] = "abc";//也是報錯數組只能初始化不能夠再賦值
b1.price = 10; //能夠改變由於price爲一個變量
printf("價格:%d\n", b1.price);//10
要想改變結構體中的字符串數組須要用到strcpy()函數c++
首先須要頭文件#include <string.h>
用法:
strcpy(name, "c++");//將"c++"賦值給name
具體代碼:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main(){
char ch[] = "xzc";
strcpy(ch, "abc");
printf("%s\n", ch);
return 0;
} //此時結果爲abc
注意:
b1的指針類型與b1一致
struct Book p=&b1;
printf("%s\n", (p).name);//必須加()否則會報錯不能識別
printf("%d\n", (*p).price);
->:箭頭操做符用法:
printf("%d\n", p->price);//輸出爲10//簡化了上述寫法數組