1樓:
1、指向不同
一般情況下用「.」,只需要宣告一個結構體。格式是,結構體型別名+結構體名。
然後用結構體名加「.」加域名就可以引用域 了。因為自動分配了結構體的記憶體。
如同 int a;一樣。
而用「->」,則要宣告一個結構體的指標,還要手動開闢一個該結構體的記憶體,然後把返回的指標給宣告的結構體指標,才能用「->」正確引用。
否則記憶體中只分配了指標的記憶體,沒有分配結構體的記憶體,導致想要的結構體實際上是不存在。這時候用「->」引用自然出錯了,因為沒有結構體,自然沒有結構體的域了。
2、讀法不同
(*a).b 等價於 a->b。"."一般情況下讀作"的」。
「->」一般讀作"指向的結構體的"。
3、作用的不同
在「結構」一單元**現的->運算子成為「右箭頭選擇」,在使用中可以用new_node->value = 10;來代替(*new_code).value = 10;
也就是說在結構中,運算子->是運算子*和運算子.的結合,在上述語句中,他先對new_node間接定址以定位所指向的結構,然後再選擇結構的成員value。
2樓:
c語言中->和.的區別為:性質不同、指向不同、訪問不同。
一、性質不同
1、->:->是指向結構體成員運算子。
2、.:.是斷點符號,不屬於運算子。
二、指向不同
2、.:.所指向的是結構體或物件。
三、訪問不同
1、->:->的用處是使用一個指向以便訪問結構體或物件其內成員。
2、.:.的用處是使用一個指向以便訪問結構體或物件。
3樓:
唯一的區別是->前面放的是指標,而.前面跟的是結構體變數,如已定義了一個結構體struct student,裡面有一個int a;然後有一個結構體變數struct student stu及結構體變數指標struct student *p;且有p=&stu,那麼p->a和stu.a表示同一個意思
4樓:匿名使用者
->是指標引用資料用的,. 是普通的變數引用資料用的;
&p->id和p.id是不一樣的,前者是取id的地址,後者是取id的值;
&p->id和&p.id是一樣的,都是取id的地址,因為->和.的優先順序都比&高,但這裡面的p是不一樣的,前者是指標變數。
5樓:匿名使用者
c語言中的'.' 是直接引用;
c語言中的'->'是間接引用。
6樓:
->用於指標,
.用於物件
比如有一個class a;
則a a;
a *p=&a;
呼叫時要
a.id;
p->id;
不明白hi我
7樓:高低要低調
都不一樣。
最簡單的辨別方法,自己編寫一個簡單程式,執行看效果。
p->id和p.id不一樣
&p->id和p.id不一樣
&p->id和&p.id不一樣
p->id和&p.id不一樣
只要這兩個操作符前後的物件或變數一樣,那麼結果肯定不一樣。因為這是兩個不同的操作符。
c語言中 a a'和"a"的區別
8樓:黑馬程式設計師
『a』是 單個字元,
「a」是 字串就是多個字元的集合實際上,"a" 等價於「a\0」;末尾還有字串結束符
c語言中,用"->"和用"."的區別
9樓:匿名使用者
c語言中絕對有「->」和「.」!
這兩個運算子都是用來訪問結構體的。比如有結構體struct student
;並且有兩個變數
struct student zhangsan;
struct student *p;
p=&zhangsan;
你要留意zhangsan是結構體的名字,p是指向這個結構體的指標。
那麼訪問結構體的兩個變數時就只能用
zhangsan.math=60;
zhangsan.english=70;
p->math=80;
p->english=90;
即結構體的名字用點,相當於「的」,某個結構體的某個分量。
指向結構體的指標就用「->」,相當於指標指向的結構體的分量。(你看那箭頭,就好比指標)
另外,在c語言中還有「位段」的概念,訪問某個bit也用「.」,也可以理解成一種結構體。
10樓:秋水靜軒
在「結構」一單元**現的->運算子成為「右箭頭選擇」,在使用中可以用new_node->value = 10;來代替(*new_code).value = 10;
也就是說在結構中,運算子->是運算子*和運算子.的結合,在上述語句中,他先對new_node間接定址以定位所指向的結構,然後再選擇結構的成員value。
11樓:投機士
c語言中,##表示把兩個巨集引數貼合在一起,而單個#的功能是將其後面的巨集引數進行字串化操作。即,
#include
#define f(a,b) a##b
#define g(a) #a
#define h(a) g(a)
int main()
##被稱為連線符(直接貼合),用來將兩個巨集引數連線為一個巨集引數。而單個#的功能是將其後面的巨集引數進行字串化操作,簡單地說就是在對它所引用的巨集變數通過替換後在其左右各加上一個雙引號,使其成為字串。
12樓:匿名使用者
兩個運算子號的優先順序相同,但是"->"用於指向結構成員,它的左邊應為指向該結構型別的指標(結構指標),而"."的左邊應為該結構型別的變數(結構變數)。舉個例子,這個結構有個結構指標structpoint,有個該結構型別的變數student,其中structpoint指向student,即*structpoint=student,那麼structpoint->name=(*structpoint).
name=student.name
13樓:匿名使用者
->為包含點操作符和解引用操作符的表示式提供的一個同義詞
-> 和 . 都是用於獲取類型別物件的成員
14樓:
c語言中好像沒有用->,或者.的時候。你看看c++物件導向的書,涉及類得知識倒是有->和.
15樓:匿名使用者
##:token-pasting operator (##)define paster( n ) printf( "token" #n " = %d", token##n )
int token9 = 9;
if a macro is called with a numeric argument like
paster( 9 );
the macro yields
printf( "token" "9" " = %d", token9 );
which becomes
printf( "token9 = %d", token9#的用法就太多老
看看msdn吧 :)
16樓:匿名使用者
值.某 等價於 指標->某
c語言中<>和「」有什麼區別
17樓:
舉例說明
例如你使用的是turboc
include
代表編譯時直接在turboc軟體設定指定的路徑(預設是turboc所在資料夾下的include資料夾)中尋找裡面是否有stdlib.h的庫檔案。如果有,直接載入;如果沒有,報錯(無法找到庫檔案)。
include "stdlib.h"
代表編譯時先尋找你正在編輯的源**檔案(c或cpp檔案)所在的資料夾裡面有沒有stdlib.h的庫檔案。如果有,優先載入這個檔案(上面提到的include資料夾下的stdlib.
**件就被無視了),如果沒有,就會在turboc軟體設定指定的路徑(預設是turboc所在資料夾下的include資料夾)中尋找裡面是否有stdlib.h的庫檔案。如果有,直接載入;如果沒有,報錯(無法找到庫檔案)。
這就是兩者的區別
所以,如果你自己編寫了庫檔案(並且沒有將它移動到turboc指定的include資料夾裡),要在源**檔案(c或cpp檔案)中將這個檔案包含進去,就必須使用雙引號格式的include語句,而不能使用帶<>號的。
18樓:愛的風信子
c語言中<>和「」的區別如下:
1、<>先去系統目錄中找標頭檔案,如果沒有在到當前目錄下找。所以像標準的標頭檔案 stdio.h和 stdlib.h等用這個方法。
2、""首先在當前目錄下尋找,如果找不到,再到系統目錄中尋找。 這個用於include自定義的標頭檔案,讓系統優先使用當前目錄中定義的。
c語言的符號和引用問題:
qq(int* q)中的(int* q)是qq這個函式的形參表,int* q表示的是q是一個指向int物件的指標,即該函式接受一個int型指標為引數;
而qq(int q),表示的是qq這個函式接受一個整形的資料q。
19樓:樑偉明此生不換
<>是系統庫的標頭檔案 這裡麵包含了系統裡面有的函式 不是自己寫的
" "一般是自己寫的標頭檔案 或者系統裡面沒有的標頭檔案 裡面包含自己寫的函式
20樓:匿名使用者
<>是在系統預設的目錄裡找標頭檔案
""是在和你的當前**檔案相同的目錄裡找標頭檔案
大概就是這樣
21樓:匿名使用者
""預設的是從當前目錄下開始呼叫,如果沒有再從庫中呼叫;<>預設的從庫中開始呼叫,一般情況下沒什麼區別。
22樓:匿名使用者
你指的是標頭檔案#include<> 和#include" "的區別麼?
c語言中和的區別,c語言中 n和 r有什麼區別
r是回車 cr 將當前位置移到本行開頭,ascii碼值 十進位制 為013。區別 1 是否換行 r 回車,回到當前行的行首,而不會換到下一行,如果接著輸出的話,本行以前的內容會被逐一覆蓋 n 換行,就是輸入完一行內容後,游標轉到下一行的起始位置 不會回到行首。例如 printf first line...
C語言中if和switch區別,C語言中if else語句與switch語句的區別在哪裡?
風若遠去何人留 switch語句,可讀性更好,整體流程看起來清晰明確。if語句適應性更強,可以處理更多的情況。所有的switch語句都可以寫成if的形式,比如switch a 可以寫作 if a b case b else if a c case celse default.但是switch 語句,...
c語言中?和 是什麼意思,C語言中 和 符號是什麼意思?
蝴蝶蘭 表示式 x y 首先計算表示式的值,若為ture,則 表示式 x y 返回x 否則返回y。c語言運算子是說明特定操作的符號 它是構造c語言表示式的工具 c語言的運算異常豐富,除了控制語句和輸入輸出以外的幾乎所有的基本操作都為運算子處理。除了常見的三大類,算術運算子 關係運算子與邏輯運算子之外...