[問題] 關於c語言指標的問題
各位c語言前輩好
小弟在寫考古題時遇到幾題問題,希望能請各位前輩指教
struct student{
char *last_name
int student_id
char grade;
};
struct student tmp, *p=&tmp;
tmp.grade='A';
tmp.last_name="laugero";
則下列運算結何者錯誤?
(a)tmp.last_name為Laugero
(b)*p-->last_name+1為a
(c)*(p-->last_name+2)為u
答案是b
想請問b和c有什麼不一樣呢?
我知道的是*p-->last_name是看第一個字母為L,那p-->last_name+2是什麼呢?
謝謝
========================================================================
第二題
有一片段程式如下:
int i[]={10,20,30,40,50};
int *ptr=i+2
請問下列敘述何者錯誤?
(a)ptr[0]==30
(b)*(ptr+1)==40
(c)*(i+1)=20
(d)ptr[-1]==20
(e)i[5]==50
答案是e 沒有問題
請問a和d要怎麼看呢??
題目是說ptr指標的內容=i+2的陣列內容
請各位前輩能指點說明。謝謝
=======================================================================
第三題
在C語言中,char *p='struct',請問*p+2為?
答案是r
請問這和第一題要怎麼分辨呢???為什麼不是將第一個字母的s+2個變成u
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.44.55
推
05/30 09:58, , 1F
05/30 09:58, 1F
→
05/30 10:00, , 2F
05/30 10:00, 2F
→
05/30 10:00, , 3F
05/30 10:00, 3F
推
05/30 10:01, , 4F
05/30 10:01, 4F
→
05/30 10:02, , 5F
05/30 10:02, 5F
→
05/30 10:02, , 6F
05/30 10:02, 6F
※ 編輯: stator 來自: 61.62.44.55 (05/30 10:15)
→
05/30 10:15, , 7F
05/30 10:15, 7F
→
05/30 10:15, , 8F
05/30 10:15, 8F
推
05/30 10:37, , 9F
05/30 10:37, 9F
→
05/30 10:37, , 10F
05/30 10:37, 10F
→
05/30 10:38, , 11F
05/30 10:38, 11F
→
05/30 10:39, , 12F
05/30 10:39, 12F
→
05/30 10:49, , 13F
05/30 10:49, 13F
推
05/30 11:38, , 14F
05/30 11:38, 14F
→
05/30 11:38, , 15F
05/30 11:38, 15F
→
05/30 13:18, , 16F
05/30 13:18, 16F
→
06/01 14:47, , 17F
06/01 14:47, 17F
討論串 (同標題文章)