1樓:匿名使用者
會不會是你理解錯了,這只是建立了個頭結點嘛,頭結點的下一個指向自己而已
2樓:
樓主你好。
rear->nextarc=temp;
rear=temp;
這兩行**的意思是先讓尾節點的nextarc指向temp,然後再將尾節點指標指向temp,相當於在連結串列尾部新增了一個節點。
沒有覆蓋一說,這裡只有指標的賦值。
這段**的意義是:先用temp指標malloc一個arcnode,然後將temp放到連結串列結尾(當然這裡可能不是連結串列,但是rear應該是指示了一個連續結構的最後一個節點)。
rear(指向連結串列結尾) temp(利用temp建立一個新的arcnode)
↓ ↓
□ □
然後rear(將temp賦值給rear指標,rear就指向了連結串列末尾)
↓□→□(原來的尾節點的nextarc指標指向了新的尾節點)
3樓:
我給你寫一個加註釋的連結串列,一看就懂了。
#include
#include
typedef struct nodelinknode,*link;
link creatlist()
r->next=null; //最後節點的next指標為空return h;//返回連結串列的起始節點}
c語言中一個結構體的指標如何指向另一個結構體所申請的記憶體,知道的告訴一下,謝謝了!
4樓:
你想讓node2指向node1所指向的內容,直接node2=node1;就是了。node2->next=node1;是讓node2所知結構體的next指標指向了node1,而node2依然指向原來的結構體。
5樓:匿名使用者
把struct btnode *p[2*m+1],*parent,*next; 中 的
struct 去掉
6樓:
struct btnode *p[2*m+1],*parent,*next;
這句是否錯誤了,應該沒有struct吧。應該這樣btnode *p[2*m+1],*parent,*next;
7樓:匿名使用者
node1=node2->next;
8樓:匿名使用者
試試先將node2->data初始化未零 然後再賦值
c語言 ,一個程式裡兩個不同結構體裡的變數名能相同嗎?用的時候會發生記憶體錯誤嗎?
9樓:gta小雞
訪問結構體的成員變數的方式是結構體變數名.成員變數名或結構體指標名->成員變數名,所以兩個不同的結構體當中的成員變數不會有命名衝突。
c語言中交換兩個結構體的值
10樓:滄海雄風
字串不能用等號賦值
因此你上面註釋掉的三行是不正確的
可以用memcpy 或者 strcpy
反正方式你也看明白了
都是 變數交換
在c語言中。結構體變數之間可以相互賦值嗎?
11樓:問明
可以直接賦值。定義結構體型別,然後用這個型別定義出來的變數就是結構體變數。
c語言在相同型別的變數間賦值時是直接記憶體複製的,即將他們的記憶體進行復制,這裡因為同樣結構體變數,屬於同一種變數,所以賦值時是按照他們的記憶體分佈來直接拷貝的。
舉例:voidmain()
stustu1={0,10};
stutemp={12,88};
stu*p1=&stu1;
stu*p2=&temp;
printf("%d-%d\n",temp.name,temp.num);
temp=stu1;
printf("%d-%d\n",temp.name,temp.num);
temp={10,10};
printf("%d-%d\n",stu1->name,stu1->num);
printf("%ld-\n",&stu1);
printf("%ld-\n",stu1);
printf("%ld-\n",&temp);
printf("%ld-\n",temp);
change(stu1,temp);
temp=stu1;
p2=p1;
printf("%d-%d\n",p2->name,p2->num);
c語言中變數間互相賦值很常見,例如:
inta,b;
a=b;
結構體也是變數(自定義變數),兩個結構體之間直接賦值按道理應該也是可以的吧,將一個結構體物件賦值給另一個結構體物件的。
例:#include"stdio.h"
structtest
inta;
intb;
intc;
char*d;
intmain()
structtestt1={1,2,3,"tangquan"};
structtestt2={0,0,0,""};
printf("%d,%d,%d,%s\r\n",t2.a,t2.b,t2.c,t2.d);
t2=t1;
printf("%d,%d,%d,%s\r\n",t2.a,t2.b,t2.c,t2.d);
return0;
12樓:匿名使用者
1、結構體變數是可以直接賦值的。定義結構體型別,然後用這個型別定義出來的變數就是結構體變數。
2、c語言在相同型別的變數間賦值時是直接記憶體複製的,即將他們的記憶體進行復制,這裡因為同樣結構體變數,屬於同一種變數,所以賦值時是按照他們的記憶體分佈來直接拷貝的。
13樓:匿名使用者
可以的,同型別的結構體變數可以。比如:
struct test a,b;
a=b;//這樣可以的。
如果是不同的型別,但是結構體沒資料型別一樣就要用memcpy拷貝記憶體(標頭檔案string.h)。例如:
struct test1 a;
c語言關於兩個結構體中所有值互換的問題
14樓:匿名使用者
~~~~簡單·~~ 假如你要交換結構體a和結構體b的內容,直接定義一個臨時結構體。。
stu t;
t=a;
a=b;
b=t;
即可·~~
C語言中連結串列中的結構體指標變數問題求教
定義結構體指標變數時,只分配儲存指標型別需要的空間,比如listnode p 這裡p有給他分配儲存指標的4個位元組的空間。實際上你是要讓p指向一個結構體空間的,這個結構體空間在哪?可以先定義listnode a 然後 p a 這時p指向一個之前申請分配過空間 編譯器設定過其地址和大小,在棧空間存放著...
C語言,結構體中的陣列怎麼賦值,C語言中結構體中的陣列,不能直接賦值嗎
1 用字元常量逐個初始化陣列。例如 char a 8 把8個字元依次分別賦給c 0 c 7 這8個元素。如果在定義字元陣列時不進行初始化,則陣列中各元素的值是不可預料的。如果花括號中提供的初值個數 即字元個數 大於陣列長度,則出現語法錯誤。如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元...
c語言中switch結構的使用,C語言中switch結構的使用
秋風依舊好 因為case後面不能接範圍,也就是說case後面是一個確實固定的常量.用下面的方法比較好,include int main 你可以先把範圍用字母或常量代替 再用switch語句 資料 include void main else printf score scanf d s system...