免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
typedef struct用法
http://blog.csdn.net/kirawoo/article/details/7439792
2012
typedef struct用法疑問
 
typedef struct node         /*鏈表節(jié)點(diǎn)定義*/
{ int a;
  struct node *next;
}LNode,*LinkList;

CreatJoseph(LinkList *jsp , int n)      /* 創(chuàng)建約瑟夫環(huán)*/
{.......}
insertList(LinkList *list, LinkList q, inte1, inte2)
{........}
LinkList已經(jīng)是指針類型的,為什么還要LinkList *jsp  還要再加個(gè)"*"???

問題補(bǔ)充:

LinkList已經(jīng)是指向結(jié)構(gòu)體類型的指針了,直接LinkList jsp  為什么不對(duì)?jsp就是指向某個(gè)結(jié)構(gòu)體的指針,為何還要在LinkList 后再加" * "??

 

2012-3-26 17:06
滿意回答
弄明白指針變量與指針變量的值,局部變量和全局變量的關(guān)系根據(jù)你說的情況,你只是在主調(diào)函數(shù)中定義了jsp但是并沒有為其分配地址,所以你直接傳進(jìn)去的話存在沖突,要么變量沒有被實(shí)例化,所以讀入數(shù)據(jù)錯(cuò)誤,下面先以一個(gè)簡單的結(jié)構(gòu)體來說明如:typedef struct _INT {	int a;}INT, * pINT;void f(pINT app);int main(void){	pINT a;	f(a);	printf("%d\n", *a);		return 0;}void f(pINT app){	app->a = 7;	return ;}要么你在內(nèi)部函數(shù)中實(shí)例化,但是你使用的指針變量,不是變量值所以造成內(nèi)部函數(shù)使用的jsp作為局部變量,在被調(diào)函數(shù)執(zhí)行完成后jsp不見了,雖然你分配的內(nèi)存在,但是主調(diào)函數(shù)的jsp找不到被調(diào)函數(shù)為局部jsp所分配的地址,地址被浪費(fèi)了,外部卻沒有找到。#include <stdio.h>#include <stdlib.h>typedef struct _INT {	int a;}INT, * pINT;void f(pINT app);int main(void){	pINT pa;	f(pa);	printf("p have fanished!\n");	printf("%d\n", pa->a);		return 0;}void f(pINT app){	app = (pINT)malloc(sizeof(INT));	app->a = 7;	return ;}/*p have fanished! 被輸出后發(fā)生運(yùn)行錯(cuò)誤*/建議改正為在創(chuàng)建的時(shí)候穿參數(shù)為元素的個(gè)數(shù)就可以了然后返回值是結(jié)構(gòu)體的指針類型如:#include <stdio.h>#include <stdlib.h>typedef struct node         /*鏈表節(jié)點(diǎn)定義*/{ 	int a;	struct node *next;}LNode,*LinkList;LinkList create(int num);void traverse_list(LinkList jsp);int main(void){	LinkList jsp = create(5);	traverse_list(jsp);	traverse_list(jsp);		return 0;}LinkList create(int num){	LinkList pHead, tail, pNew;	tail = pHead = (LinkList)malloc(sizeof(LNode));	//創(chuàng)建頭結(jié)點(diǎn)	tail->next = NULL;	for(int i=0; i<num; i++)	{		pNew = (LinkList)malloc(sizeof(LNode));		printf("Pls enter your %dth num: ", i+1);		scanf("%d", &pNew->a);		tail->next = pNew;		tail = pNew;	}	tail->next = NULL;	//dont foget it	return pHead;}void traverse_list(LinkList jsp){	while(jsp->next != NULL)	{		jsp = jsp->next;		printf("%d  ", jsp->a);	}	printf("\n");}而且從本程序我們也可以看見,在后面的兩個(gè)traverse過程中都是引用jsp(LiskList型),但是外部的jsp并未被改變,所以你的那個(gè)好像是不對(duì)的 運(yùn)行結(jié)果為Pls enter your 1th num: 1Pls enter your 2th num: 2Pls enter your 3th num: 3Pls enter your 4th num: 4Pls enter your 5th num: 51  2  3  4  51  2  3  4  5Press any key to continue
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
線性表鏈?zhǔn)酱鎯?chǔ)
數(shù)據(jù)結(jié)構(gòu)題集(C語言版)算法設(shè)計(jì)題解析-第二章
嵌入式開發(fā)-C語言高級(jí)編程-共同體和typedef
開放協(xié)作論壇 - 一個(gè)c鏈表問題
單鏈表操作(自制)
棧的實(shí)現(xiàn)(順序表和鏈表)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服