㈠ c語言結構體
問題在於如果你的結構的指針數真能達到極限,你怎麼玩這個結構啊?
㈡ C語言結構體
/* p->averagescore=(p->score1+p->score2+p->score3)/3;*/*******為什麼要用它 -> 因為p是指針,結構體指針引用成員時,就要用->,這是規定!
*p.averagescore=(*p.score1+*p.score2+*p.score3)/3;*******************為什麼錯 (*p).averagescore 要這樣寫,*p要用括弧括起來,*p是個整體,代表指針指向的地址中的數據,相當於一個普通結構體數據變數。
㈢ C語言結構體簡單編程
#include<stdio.h>
#include<stdlib.h>
#define mode(hdr) hdr+1
struct student{
struct student *next;
int num;
};
void main()
{
//printf("%d",mode(2));
struct student *hf=NULL;
hf = (struct student *)malloc(sizeof(struct student));//要給指針申請空間
hf->num=10;
printf("%d",hf->num);
}
㈣ C語言 結構體 怎麼定義 使用 舉個例子 看看
struct a
{
int m;
char f[20];
....
}
這就是結構體,定義一般放在頭文件的開頭!
㈤ C語言結構體的用法,
結構體的使用,首先要定義:
#include<stdio.h>
structstudent
{
charname[10];
intnum;
intage;
};//注意要分號
//然後就可以使用了:
voidmain()
{
structstudents;
structstudent*p=&s;//指針指向,可以不用指針
printf("inputname:");
gets(s.name);//若使用指針,則:gets(p->name);
printf("inputnum:");
scanf("%d",&s.num);//指針的寫法:scanf("%d",&p->num);
printf("inputage:");
scanf("%d",&s.age);
//輸出結果:
printf("name num age ");
printf("%s %d %d ");
}
結構體類似於數組,但結構體能定義不同的數據類型,這也是它的特別之處
㈥ c語言結構體
data是你定義的一個結構類型(類似於int),DT是一個data的變數(類似於int i)。p是一個指針,用於指向一個data變數。
data的定義常見於單鏈表的節點結構,包含數據和指針兩部分內容。數據當然是用來保存數據的,而指針用於把一個一個的節點串起來,在邏輯上形成一個鏈表
㈦ 求一個C語言結構體編程例子。
#include<stdio.h>
structstudent
{
intnum;
charname[20];
intScore1;
intScore2;
intScore3;
}student[2];
intmain()
{
inti,j;
intAverage;
for(i=0;i<3;i++)
{
printf("請輸入學生%d的資料: ",i+1);
printf("學號為:");
scanf("%d",&student[i].num);
printf("姓名是:");
scanf("%s",&student[i].name);
printf("第1門成績是:");
scanf("%d",&student[i].Score1);
printf("第2門成績是:");
scanf("%d",&student[i].Score2);
printf("第3門成績是:");
scanf("%d",&student[i].Score3);
printf(" ");
}
printf("學號 姓名 語文 數學 英語 平均分 ");
for(j=0;j<3;j++)
{
Average=(student[j].Score1+student[j].Score2+student[j].Score3)/3;
printf("%d",student[j].num);
printf(" %s",student[j].name);
printf(" %d",student[j].Score1);
printf(" %d",student[j].Score2);
printf(" %d",student[j].Score3);
printf(" %d",Average);
printf(" =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* ");
}
}
㈧ c語言中用結構體的實例當做函數的參數是什麼形式傳入的
參數的傳入分為兩種形式:值傳遞和地址傳遞。如果把實例本身作為參數傳到函數裡面去,那麼在函數裡面實際上是另外產生一個臨時的實例,其值和函數外部的那個實例一樣,當然在函數內部對其做的一些改動是不會影響到外邊的實例的,因為就不是同一個東西。當然如果在函數里不是想去改變什麼而只是單純的計算一些東西還是沒問題的,不過在內存中的地址之類的當然是不一樣的。。。傳指針也就是把地址傳進去,那麼在函數里對該地址中的數據進行操作,當然就是在外部實例本身上面進行修改了
㈨ C語言結構體Struct怎麼使用
在Turbo C中,結構也是一種數據類型, 可以使用結構變數,因此,像其它類型的變數一樣,在使用結構變數時要先對其定義。
如果需要定義多個具有相同形式的結構變數時用這種方法比較方便,它先作結構說明,再用結構名來定義變數。
(9)c語言結構體實例擴展閱讀
指向結構體的指針是一個一直都沒有掌握好的點,希望這里能記錄好一點,加強理解。
對於指針有幾個好處,
第一:就像指向數組的指針比數組本身更容易操作一樣,指向結構的指針通常也更容易操作;
第二:在早期的C中參數傳遞只能使用結構的指針;
第三:很多奇妙的數據表示都是用了包含指向其他結構的指針的結構。
和數組不同,結構的名字不是該結構的地址(即單獨的結構名並不是該結構地址的同義詞),必須使用 & 運算符。