c99什么意思_C语言中-是什么意思啊?
展開全部
->是一個整體,它是用于指向結構體、C++中的class等含有子數據的指針用e5a48de588b662616964757a686964616f31333366303130來取子數據。換種說法,如果我們在C語言中定義了一個結構體,然后申明一個指針指向這個結構體,那么我們要用指針取出結構體中的數據,就要用到“->”.
舉個例子:
struct Data
{
int a,b,c;
}; /*定義結構體*/
struct Data * p;/*定義結構體指針*/
struct Data A = {1,2,3};/*聲明變量A*/
int x;/*聲明一個變量x*/
p = &A ; /*讓p指向A*/
x = p->a;/*這句話的意思就是取出p所指向的結構體中包含的數據項a賦值給x*/
/*由于此時p指向A,因而 p->a == A.a,也就是1*/
對于一開始的問題 p = p->next;這應該出現在C語言的鏈表,這里的next應該是一個與p同類型的結構體指針,其定義格式應該是:
struct Data
{
int a;
struct Data * next;
};/*定義結構體*/
…………
main()
{
struct Data * p;/*聲明指針變量p*/
……
p = p->next;/*將next中的值賦給p*/
}
鏈表指針是C語言的一個難點,但也是重點,學懂了非常有用。要仔細講就必須先講變量、指針。
擴展資料:
鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。
鏈表由一系列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。
每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。 相比于線性表順序結構,操作復雜。
由于不必須按順序存儲,鏈表在插入的時候可以達到O(1)的復雜度,比另一種線性表順序表快得多,但是查找一個節點或者訪問特定編號的節點則需要O(n)的時間,而線性表和順序表相應的時間復雜度分別是O(logn)和O(1)。
使用鏈表結構可以克服數組鏈表需要預先知道數據大小的缺點,鏈表結構可以充分利用計算機內存空間,實現靈活的內存動態管理。
但是鏈表失去了數組隨機讀取的優點,同時鏈表由于增加了結點的指針域,空間開銷比較大。
鏈表最明顯的好處就是,常規數組排列關聯項目的方式可能不同于這些數據項目在記憶體或磁盤上順序,數據的存取往往要在不同的排列順序中轉換。
鏈表允許插入和移除表上任意位置上的節點,但是不允許隨機存取。鏈表有很多種不同的類型:單向鏈表,雙向鏈表以及循環鏈表。
鏈表可以在多種編程語言中實現。像Lisp和Scheme這樣的語言的內建數據類型中就包含了鏈表的存取和操作。
程序語言或面向對象語言,如C,C++和Java依靠易變工具來生成鏈表。
總結
以上是生活随笔為你收集整理的c99什么意思_C语言中-是什么意思啊?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杜卡迪公布首款电动摩托车!极速达275公
- 下一篇: 一球从100米高度自由落下,每次落地后反