c語言中
Ⅰ c語言中「%=」是什麼意思
%是求模的意思,兩邊必須是整數類型的,求模常用符號為mod,就是小學學的求余運算符。
例如50%23=4,因為余數為4,所以在程序中必須保證兩邊為整數才是這個意思。
類似的還有 +=,-=,*=,/= 等。但是a%=b這種運算的效率,要高於a=a%b這種的效率,因為a%=b是直接在a上做求余運算,a=a%b則是先用一個臨時變數的來記錄好a的值,在進行運算,之後將運算結果再賦值給a,a=a%b要比直接a%=b多了兩次賦值運算,因而後者的效率更高。
例如:
a + b, c = b, c++
逗號運算符的優先順序是所有運算符中級別最低的,通常配合 for 循環使用。逗號表達式最右邊的子表達式的值即為逗號表達式的值。上例中,c++ 的值(c 自增之前的值)即為該表達式的值。
逗號運算符保證左邊的子表達式運算結束後才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有副作用都結束後,才對其右邊的子表達式進行運算。因此,上例中,c 得到 b 的值後,才進行自增運算。
以上內容參考:網路-C語言運算符
Ⅱ C語言中->是什麼意思啊
「->」是一個整體,它主要用於指向結構體、C++中的class等含有子數據的指針用來取子數據。
換種說法,如果我們在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->next;
}
Ⅲ C語言中>>和<<如何使用
C語言中<< 代表左移運算符,>> 代表右移運算符,位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。
<< 代表左移運算符:左移運算符用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
例如:設無符號短整型變數a為0111(對應二進制數為0000000100010001),則:a<<3 結果為0888(對應二進制數為0000100010001000)。
>> 代表右移運算符:右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進制的 00111000)向右移兩位等於14 (即二進制的 00001110) 。
(3)c語言中擴展閱讀:
相關運算規則:
1、在移位運算時,byte、short和char類型移位後的結果會變成int類型,對於byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。
2、移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是移動66次和移動2次得到的結果相同。
3、位移位運算符的優先順序:算術運算符優先於位移位運算符優先於關系運算符,位移位運算符是同級別的,結合性是自左向右。
Ⅳ c語言中符號<<是什麼意思
符號<<在C語言中代表了左移運算符。
<<用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
(4)c語言中擴展閱讀
將a的二進制數左移2位,右補0。若a=15,即二進制數00001111,左移2位得00111100,即十進制數60(為簡單起見,用8位二進制數表示十進制數15,如果用16位二進制數表示,結果是一樣的)。高位左移後溢出,舍棄。
左移一位相當於該數乘以2,左移2位相當於該數乘以2^2=4。上面舉的例子15<< 2=60,即乘了4。但此結論只適用於該數左移時被溢出舍棄的高位中不包含1的情況。
例如,假設以一個位元組(8位)存一個整數,若a為無符號整型變數,則a=64,即二進制數01000000時,左移一位時溢出的是0。而左移2位時,溢出的高位中包含1,則不符合上述結論。
Ⅳ C語言中/與%的區別
%作為運算符是用來取余的,/是除法運算。
例如:除法運算式
65 ÷8 = 8餘1
那麼
65 / 8 = 8
65 %8 = 1
(5)c語言中擴展閱讀
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
Ⅵ C語言中%什麼意思
%是求模的意思,兩邊必須是整數類型的,它的作用是求模常用符號為mod,就是求余運算符。
1、例如50%23=4,因為余數為4,就是這樣的,在程序中必須保證兩邊為整數才是這個意思。
2、當不是這種形式時: 例如:%d就成了控制語句了 %d,%ld,%f,%lf,%-md,%.mlf等,這個應該詳細了解的。
其他運算符:
1、逗號運算符
用於把若干表達式組合成一個表達式(,)。
2、指針運算符
用於取內容(*)和取地址(&)二種運算。
3、求位元組數運算符
用於計算數據類型所佔的位元組數(sizeof)。
4、特殊運算符
有括弧(),下標[],成員(→,.)等幾種。
Ⅶ C語言中的/=是什麼含義
這是C語言里常用的復合賦值運算,下面解釋一下。
1.C
語言中的基本賦值運算
首先講解一下C語言中的基本賦值運算,其運算符為「=」,這里不是等於,而是賦值。舉例如下所示:
圖中,定義了三個變數a,b,c,分別把1賦值給變數a,把2賦值給變數b,把求和表達式a+b賦值給變數c。
2.復合賦值運算符
復合賦值運算符常見的符號有:+=、-=、*=、/=、%=,有兩方面的含義,首先做數學計算,而後再賦值。
從圖上可以看出,運算符兩邊的變數先做左邊的數學運算,然後將結果賦值給左邊的變數。這樣的寫法簡化了C語言的代碼,結構上看起來比較清爽,提升代碼效率。
舉例如下:
執行完a += 1後,a = 2;
執行完b -= a+5後,b=b-(a+5)=-5;
執行完c *= a-4後,c=c*(a-4)=-6;
c語言里有很多需要理解的符號,它跟數學符號很有關系,但有些又是區分於數學符號,比如「=」在數學上是等於的意思,所以a=1,我們讀作a等於1,可是如果在c語言里,「=」是賦值的意思,a=1是指把1賦值給a,而a==1才讀作a等於1。
所以我首先要弄清楚基本的運算符號如+,-,/,*,%,&,!=等的意思,至於乘法運算,c語言里沒有×這個符號,而是用了*,對於除法,沒有÷這個符號,用了/,例如5*3就是15,6/3就是2
像a=a+1,就是把a+1賦值給了a,我們可以簡便寫法那就是a+=1.
同理a-=1其實就是a=a-1.
a/=5就是a=a/5,a*=6就是a=a*6。
例如a=20,a*=6,那麼結果就是a=120
例如a=30,a/=6,那麼結果就是a=5
希望能解決到你的問題
這是C語言里的簡化寫法(也叫復合運算符)
即可將
加+ 減- 乘* 除/ 求余數%
五種運算符的表達式
a=a#x
表示為
a#=x
其中#表示五種運算符,x表示變數或某個值
其實++,--也是哦
Ⅷ c語言中 %c表示什麼
%c在C語言中代表字元型格式符。
%s在C語言中代表字元串型格式符。
%c和%s一般用在printf、sprintf等字元串格式化函數中,用於決定格式化參數的數據類型。如printf("%s", a)會將變數a作為字元串類型進行格式化。
printf()函數是格式化輸出函數, 一般用於向標准輸出設備按規定格式輸出信息。
printf()函數的調用格式為: printf("<格式化字元串>", <參量表>)。
格式輸出,它是c語言中產生格式化輸出的函數(在 stdio.h 中定義)。用於向終端(顯示器、控制台等)輸出字元。格式控制由要輸出的文字和數據格式說明組成。要輸出的文字除了可以使用字母、數字、空格和一些數字元號以外,還可以使用一些轉義字元表示特殊的含義。
(8)c語言中擴展閱讀:
C語言中所有格式化類型的定義:
1、%d/i
接受整數值並將它表示為有符號的十進制整數,i是老式寫法
2、%o
無符號8進制整數(不輸出前綴0)
3、%u
無符號10進制整數
4、%x/X
無符號16進制整數,x對應的是abcdef,X對應的是ABCDEF(不輸出前綴0x)
5、%f(lf)
單精度浮點數和雙精度浮點數用f(lf在C99開始加入標准,意思和f相同)
6、%e/E
科學計數法表示的數,此處"e"的大小寫代表在輸出時用的「e」的大小寫
7、%g/G
有效位數,如:%.8g表示單精度浮點數保留8位有效數字。
8、%c
字元型。可以把輸入的數字按照ASCII碼相應轉換為對應的字元
9、%s/S
字元串。輸出字元串中的字元直至字元串中的空字元(字元串以'