C語言中有什麼意義,c語言中SIZEOF啥意義

2021-05-19 21:17:57 字數 5912 閱讀 3532

1樓:匿名使用者

~是按位取反,即把變數在記憶體中的值的二

進位制形式的各位,1變成0,0變成1.

比如67的二進位制是01000011,~後變成10111100《是位左移,比如67<<3,就是把01000011左移3位,變成00011000.

0<

2樓:踏岸尋柳

~是c/c++裡面的單目運算子,它按位取反後返回。

你的這個:temp += 0<

1. 0左移動i位;

2. temp自加上1的返回值。

~與你的這個左移、自加沒有任何關係 ^_^

3樓:匿名使用者

您好 在c語言中 ~ 是取反的意思

就是取一個數的反碼

比如一個4位的數0x000f取反就是0xfff0《是左移

temp += 0<>」是雙目運算子。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。

例如:設 a=15,a>>2 表示把000001111右移為00000011(十進位制3)。 應該說明的是,對於有符號數,在右移時,符號位將隨同移動。

當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。turbo c和很多系統規定為補1。

main()

4樓:匿名使用者

~在位運算的時候是取非的意思

~x就是對x化成二進位制後取非值

《這個是位運算<

請樓主檢視一下相關的位運算

5樓:

~這個是按位取反運算子(單目運算子)

temp += 0<

6樓:匿名使用者

《這個是左移符,具體的我也不太清楚,我只知道把10進位制的轉換成2進位制的,然後在移動

7樓:匿名使用者

temp等於0小於i ,然後自加1

8樓:匿名使用者

這是c麼?

明明就是c++嘛

9樓:貳騫席珊

1、用在scanf裡面,諸如此類

scanf("%d",&a);

就是取地址運算,此例中,就是把從鍵盤緩衝去讀一個值(scanf的作用),然後賦值到記憶體中a變數對於的地址中

2、單一運算元前面作用是

取地址,例如:int

*p,a;

p=&a;

3、兩個

運算元的情況則表示位運算中的

與運算,如二進位制操作:1101

&1010

=1000

望採納!!!

c語言中sizeof啥意義

10樓:匿名使用者

一、sizeof的概念

sizeof是c語言的一種單目操作符,如c語言的其他操作符++、--等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。

運算元可以是一個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。

二、sizeof的使用方法

1、用於資料型別

sizeof使用形式:sizeof(type)

資料型別必須用括號括住。如sizeof(int)。

2、用於變數

sizeof使用形式:sizeof(var_name)或sizeof var_name

變數名可以不用括號括住。如sizeof (var_name),sizeof var_name等都是正確形式。帶括號的用法更普遍,大多數程式設計師採用這種形式。

注意:sizeof操作符不能用於函式型別,不完全型別或位欄位。不完全型別指具有未知儲存大小的資料型別,如未知儲存大小的陣列型別、未知內容的結構或聯合型別、void型別等。

如sizeof(max)若此時變數max定義為int max(),sizeof(char_v) 若此時char_v定義為char char_v [max]且max未知,sizeof(void)都不是正確形式。

三、sizeof的結果

sizeof操作符的結果型別是size_t,它在標頭檔案

中typedef為unsigned int型別。該型別保證能容納實現所建立的最大物件的位元組大小。

1、若運算元具有型別char、unsigned char或signed char,其結果等於1。

ansi c正式規定字元型別為1位元組。

2、int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、 float、double、long double型別的sizeof 在ansi c中沒有具體規定,大小依賴於實現,一般可能分別為2、2、2、2、 4、4、4、8、10。

3、當運算元是指標時,sizeof依賴於編譯器。例如microsoft c/c++7.0中,near類指標位元組數為2,far、huge類指標位元組數為4。

一般unix的指標位元組數為4。

4、當運算元具有陣列型別時,其結果是陣列的總位元組數。

5、聯合型別運算元的sizeof是其最大位元組成員的位元組數。結構型別運算元的sizeof是這種型別物件的總位元組數,包括任何墊補在內。

讓我們看如下結構:

struct a;

在某些機器上sizeof(a)=12,而一般sizeof(char)+ sizeof(double)=9。

這是因為編譯器在考慮對齊問題時,在結構中插入空位以控制各成員物件的地址對齊。如double型別的結構成員x要放在被4整除的地址。

6、如果運算元是函式中的陣列形參或函式型別的形參,sizeof給出其指標的大小。

四、sizeof與其他操作符的關係

sizeof的優先順序為2級,比/、%等3級運算子優先順序高。它可以與其他操作符一起組成表示式。如i*sizeof(int);其中i為int型別變數。

五、sizeof的主要用途

1、sizeof操作符的一個主要用途是與儲存分配和i/o系統那樣的例程進行通訊。例如:

void *malloc(size_t size),

size_t fread(void * ptr,size_t size,size_t nmemb,file * stream)。

2、sizeof的另一個的主要用途是計算陣列中元素的個數。例如:

void * memset(void * s,int c,sizeof(s))。

六、建議

由於運算元的位元組數在實現時可能出現變化,建議在涉及到運算元位元組大小時用sizeof來代替常量計算。

11樓:匿名使用者

sizeof()顧名思義size of ...某某的大小長度。如果是sizeof(int)那就意味著一個int型的長度。

8位代表一個位元組長度,所以如果是一般使用的tc編譯器(16位的)那麼sizeof(int)就等於2。

c語言中的*有什麼作用 20

12樓:匿名使用者

形參裡面的*說明是指標,函式裡面用*是解引用。

輸出值是什麼,不知道,因為現在又沒有呼叫。

13樓:不浩歌吳然

我來總結的說一下吧

1.%用來整數求餘

如4%3=1

2.%放在特定小寫字母前用來控制輸入或輸出格式常用的有

%d整形

%f實數

%c字元

%s字串......

具體情況見下文:

%d/%i

以帶符號的十進位制形式輸出整數

%o以無符號的八進位制形式輸出整數

%x/%x

以無符號的十六進位制形式輸出整數

%u以無符號的十進位制形式輸出整數

%c輸出一個字元

%s輸出字串

%f以小數點形式輸出單、雙精度,隱含六位小數%e/%e

以指數形式輸出實數,用e時指數以「e」表示(如1.2e+02),用w時指數以「e」表示(如1.2e+02)

%g/%g

選用%f或%e格式中輸出寬度較短的一種格式,不輸出無意義的0.用g時,若以指數形式輸出,則指數以大寫表示

c語言中<<有什麼作用?怎麼用?

14樓:圍城

這是位運算子,是對一個數的二進位制進行移位後得到一個新的數。

例如執行以下語句

int a;

a=3;

a=(a<<2);//a的二進位制是 0000 0011,這是它向左移兩位,a變成了0000 1100,後面補零

現在a就是12了

c語言中的&有什麼作用?

15樓:匿名使用者

這個得看實際情況,一般的取地址,用在指標的時候

如int n = 0,scanf("%d",&n);或者定義指標 char* p = str(或者&c)

引用 int& a = b; a就是b的別名,只是變數名不一樣,他們儲存的記憶體是一樣的,對a操作就是對b操作。

位運算操作:按位與 a & b a =5 b = 7; a & b =

a = 0000 0101

b = 0000 0111 a & b = 0000 0101 = 5

16樓:匿名使用者

1、作為「與」運算子

。比如1&0=0;1&1=1.

2、作為取地址運算子。int *p = &a。p指標指向a的地址3、引用。

比如int &a = b。a就是b的一個引用,呼叫它倆的任何一個結果是一樣的,它倆的記憶體位置一樣,就是標示符不一樣。比如「李四」又叫「小四」,指的是一個人。

17樓:匿名使用者

在c語言中&符號不止一個作用,主要看它運用在什麼地方,比較常見的是取地址的意思,如定義一個整型變數:int a;那麼&a表示取變數a在記憶體中的地址,此外它還可以表示引用。

c語言中「巨集」是個什麼東西 有什麼意義

18樓:匿名使用者

巨集定義的

作用在預編譯階段,形如 #define a b 就是巨集定義了,作用就是在預編譯階段將程式中的a全部視為b,舉個例子:

我們在程式最開始,宣告如下巨集定義

#define pi 3.1415926

那麼在我們寫程式的時候,我們可以直接使用pi作為一個常量來使用,那麼當我們編譯程式的時候,編譯器會自動將程式中出現的pi替換成3.1415926

第二個例子,利用巨集定義定義傻瓜函式

#define mul(a,b) a*b

那麼我們可以將mul()在程式中當成函式來使用,為什麼叫做傻瓜函式一會來解釋,使用方法

mul(3,5) 那麼這段**就相當於計算3*5=15

那麼當我們如下使用時就會出現問題

mul(3+2,3) 我們期待的結果是15,而實際結果是9,為什麼呢?因為在程式會如下轉換

3+2*3=3+6=9 這也就是為什麼我們管巨集定義出來的函式叫傻瓜函式的原因了~~~

樓主呀~~~完全手寫,一定要好評呀!^_^

19樓:匿名使用者

「巨集」,就是大的意思,c語言中的巨集,是一種可以代表任何語言元素的識別符號。

這裡還有一個概念,就是巨集定義,例如:#define a b+c巨集定義出現在c語言的源**中,在正式編譯前,編譯器會進行預處理,而預處理過程包括一個很重要的任務(當然還有其它任務),就是替換巨集,這種替換是一種機械的替換,並不考慮識別符號的語法,語義,也就是說當遇到上面的a時,會直接替換成b+c。

還有一種更加靈活的巨集,是帶引數的巨集,例如:#define f(a,b) (a)+(b)

替換時會根據引入引數,這樣,f(1,2)會被替換成(1)+(2)。

c語言中SIZEOF的問題,c語言中的 sizeof 問題

我來回答你的問題 sizeof函式的意思是統計變數長度。int的長度長2個位元組 char的長度長1個位元組 float的長度長4個位元組 union uuua的長度取決於其中成員中最長的變數的位元組長度,在這裡為char型別,共五個元素值,長度為5。那麼開始統計總長度也就是2 1 4 5 12 希...

c語言中si有什麼作用,C語言中s i 0 有什麼作用

s i 0 一般為建立一個字串陣列後,判斷字串是否輸入完畢,常用在迴圈或者判斷語句。回 c語言中,字串答 可以賦值給字元指標變數,或者將字串用字元陣列儲存。因為c語言沒有直接對字串提供語法方面的支援。而且c標準庫很多方法處理字串是以空字元結尾為前提的,這個必須要記住。s i 0 用來判斷字元s i ...

C語言中si什麼意思,C語言中CSi是什麼意思

這裡來就是考察你對後置 前置 先源做自加 減,在執行。例如int i 0 int j i 2 i先做加法,在加2賦給j 即 j 3,i 1 後置 先執行,在做自加 減。例如int j 0 int i 0 s j s i 將s 0 賦值給s 0 然後,j加法處理,j 1 s i 意思是s i然後把結果...