作者Mayinggo (馬贏狗)
看板Examination
標題[課業] 程式語言兩題
時間Sat Jul 27 22:43:19 2013
1.已知陣列M[15][12],每個元素4bytes。M[5][5]位址=13244868,行為主儲存模式,
則M結束位置為...
我是算13244868+((11-5)*15+(14-5))*4=13245264
可是書本上說還要加3 所以不清楚加3的原因為何
2.#include <stdio.h>
#include <stdlib.h>
#include <string.h>
union grade{
char course[5];
int score;
}Bob;
void printBob(void){
printf("Bob科目=%s\n",Bob.course);
printf("Bob成績=%d\n",Bob.score);
}
int main(void){
Bob.score=98;
strcpy(Bob.course,"數學");
printBob();
strcpy(Bob.course,"數學");
Bob.score=98;
printBob();
system("PAUSE"); return 0;
}
output是Bob科目=數學
Bob成績=-943798596
Bob科目=b
Bob成績=98
那個-943798596和b是怎麼形成的不太清楚
還請會的大大賜教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.166.245
1F:推 EmptySmile:第一題我不明白...第二題因為你用union 07/27 23:19
2F:→ EmptySmile:可以先去了解一下union你就知道為什麼了 07/27 23:20
3F:推 VampireClub:union共用記憶體空間 後面指定的會刪除前面指定的 07/27 23:20
我知道共用記憶體空間
4F:→ Idownor:第一題沒說陣列是否從0開始也可以算??? 07/27 23:28
起始位址M[0][0]
※ 編輯: Mayinggo 來自: 111.242.11.49 (07/28 08:55)
5F:→ silentlich:你算出元素頭,+3byte才是元素尾端 07/28 09:21
找到了
陣列結束指標是陣列中要排序的最後一個位置的下一個位置,也就是說會被排序的是一個
半開區間
還請大大解釋union的概念
※ 編輯: Mayinggo 來自: 111.242.11.49 (07/28 09:42)
6F:推 mountain0219:所謂的UNION指的是COURSE和SCORE 07/28 11:03
7F:→ mountain0219:指向相同的記憶體空間,只是型態不同 07/28 11:04