『壹』 【求助】關於c語言結構體指針傳遞
一個問題是函數create沒有返回值類型,再就是typedef定義結構體類型可以這么用嗎?
typedef struct stu
{
int id;
int age;
}good,*p;
這個 *p是什麼鬼 可以這么定義指針么 沒這么用過。。。
假設可以 用*P 接收一個地址 也說不過去額 相當於把返回的地址賦給p指針所指向的內容了。
『貳』 C語言指針和結構圖MADDID
46 p q r為三個節點,且p->next = q; q->next=r
所以列印的p->num+q->next->num = 10+r->num=10+30=40
選D
47 經過typedef INTEGER就是一個新類型 等效於int *
p是INTEGER, 也就是int *
q是INTEGER*,也就是int **
選B
『叄』 C語言中利用指針傳遞包含二維數組結構體的異常問題
creat函數裡面的變數t在creat函數執行完畢後就已經消失了,你雖然保留了指向它的指針,但是,指針指向的內存已經不存在t了,所以結果不是你想的那樣。你可以在mian裡面定義t,然後把指向t的指針作為參數傳給creat函數,然後在creat函數裡面給它的成員賦值
『肆』 c語言指針和結構體
樓主你好:
for(i=cnt;i>0;i--)
{/*P為臨時結構體指針*/
p=(struct linklist *)malloc(sizeof(linklist));
scanf("%s%s%d",p->sno,p->sname,&p->sgrade);
p->next=ps->next;
ps->next=p;
}
你仔細看一下你的這段代碼。
第一次循環的時候,p指向ps指向的地址,然後ps指向p,這樣的結果是:ps--->p---->p->next
然後下一次循環,ps->next現在是p,你執行了「p->next=ps->next」那麼p指向了p自己。。。而ps指向了p。在以後的循環中無法改變這一現象,從而造成了死循環,不知道你是不是能夠明白,推薦你畫一下圖,畫畫就明白了。
還有最後的那個for循環,終止條件改為p=p->next,這個應該是粗心了吧?
看起來你是初學c,c中聯表示比較難以理解的一部分,祝你好運,學業有成。
『伍』 c語言結構體指針參數傳遞
有些編譯器應該是不支持不寫struct的, 結構體的話得把struct加上.
你說的這句話都是病句, 在程序不運行的情況下, 任何人也不知道參數有沒有被傳遞過去.
你如果這程序能運行, 沒報錯. 但是在運行的時候有內存錯誤, 而傳進來的參數又不是野指針, 那就是語言的問題. 但問題是語言沒有問題.
『陸』 C語言關於結構體指針的地址傳遞問題!!在線等
所有的
scanf("%d",&
在"%xxx"之後添加 \n
scanf("%d\n",&
『柒』 關於C語言中結構體傳遞指針的問題
不是結果不對,是你輸出格式錯了,double類型輸出用%lf
你可以輸出到小數點一位
printf("The average of the first course (Endilsh) is : %.1lf\n",aver);
『捌』 c語言數據結構結構體指針的使用
insert 操作,參數是ListNode指針的指針,意味著在insert函數中,會修改ListNode指針的內容,所以傳入指針的指針,以便在函數中對形參的修改可以通知影響實參。
paint操作,由於不會修改指針的內容,只是讀取,所以傳遞指針的數值就行。
『玖』 c語言版數據結構圖的一些基本操作函數如下,有三個地方不了解,請各位幫幫忙
(1)問題三:
i=LocateVex(*G,va);
j=LocateVex(*G,vb);
*G不是指針,是指針G所指對象,就是ALGraph類型。程序中多處使用變數G,但是不同的地方,含義不同。在void CreateGraph(ALGraph *G)裡面,G是一個指針,因此,引用其所指對象,要用*G。其他情況下,ALGraph G,G不是指針。
(2)第一:這個void DFSTraverse(ALGraph G,void(*print)(char*)) 為什麼不能直接調用print函數,像調用DFS函數一樣?可以的,使用函數指針是為以後任意擴展輸出程序,以適應不同需要,並且可以作為參數傳遞。
(3)第二:FirstAdjVex(G,G.vertices[v].data)為什麼要用頂點,用了之後又取位置,而不直接用位置,會有什麼漏洞嗎?不會
int FirstAdjVex(ALGraph G,VertexType v)
{
ArcNode *p;
int v1;
v1=LocateVex(G,v);
p=G.vertices[v1].firstarc;
if(p)
return p->adjvex;
else
return -1;
}
利用已經定義的定位函數LocateVex直接定位頂點v,然後直接讀取其firstarc,很自然的過程。