⑴ 5在c語言中是什麼意思
在C語言中,「!」是邏輯非的運算符。
「!5」是邏輯運算表達式。它是對後面的邏輯值取「反」運算。如:後面是真,則進行非運算後的值是假。
在C語言中,任何非0數字都解釋為邏輯真,所以,數字5的邏輯值是真。
這樣,「!5」的運算就是「非真」,結果當然就是「假」了。
在C語言中,規定用「1」代表邏輯真,用「0」代表邏輯假。所以,「!5」的值——邏輯假——就用「0」代表了。
是故,「!5」在C語言中的意思是「邏輯假」,它的值為0。
C語言運算符列表:
1、優先順序1級
結合方向左結合(自左至右)
()圓括弧
[]下標運算符
->指向結構體成員運算符
.結構體成員運算符(請注意它是一個實心圓點)
2、優先順序2級
結合方向右結合(自右至左)單目運算符
!邏輯非運算符
~按位取反運算符
++自增運算符
--自減運算符
-負號運算符
(類型)類型轉換運算符
*指針運算符
&地址與運算符
sizeof長度運算符
⑵ 單片機埠地址映射
只能通過運算實現
#define PX(x) P0=(P0&0xe0)|(x&0x1f);P2=(P2&0xcd)|(((x&0xc0)>>2)|(((x&0x20)!=0)<<1))
輸出0x55
P0.0 P0.1 P0.2 P0.3 P0.4 P2.1 P2.4 P2.5
1 0 1 0 1 0 1 0
調用只能PX(0xff);這樣的格式不能實現PX=0xff;不能像普通IO一樣操作,只能寫出不能讀入
執行後不會修改無關的IO,未被關聯到的IO輸出電平不變。
⑶ c語言中5和5分別代表什麼意思
在c語言中 !代表 邏輯運算符非,5 是非0 , 所以 !5 表示 0。 C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
⑷ C語言中*px++ *(px++) (*Px)++有什麼區別
前面兩個一樣的,都是取內容後指針後移,中間的那個的括弧只是障眼法,起誤導作用的。
後面的是先取內容然後內容的數據加1,相當於i++
一種是指針加1,一種是數值加1
⑸ c語言中參數是什麼概念
函數的參數分為形參和實參兩種。
形參出現在函數定義中,在整個函數體內都可以使用,離開該函數則不能使用。實參出現在主調函數中,進入被調函數後,實參變數也不能使用。
形參和實參的功能是作數據傳送,發生函數調用時,主調函數把實參的值傳送給被調函數的形參從而實現主調函數向被調函數的數據傳送。
舉個例子:
定義一個函數s=f(a,b),功能是將a和b的差賦值給s,那麼,a和b就是這個函數的兩個參數。
(5)c語言中px5擴展閱讀:
C語言的參數傳遞方式
方法有3種方式:值傳遞、地址傳遞、引用傳遞
tips:
被調用函數的形參只有函數被調用時才會臨時分配存儲單元,一旦調用結束佔用的內存便會被釋放
值傳遞和地址傳遞,傳遞的都是實參的一個拷貝
C語言中實參和形參之間的數據傳遞是單向的「值傳遞」,單向傳遞,只能由實參傳給形參,反之不行
輸出格式並沒有選擇%p而是選擇了%d,因為十進制的數看起來更直觀。
值傳遞
如果只是傳遞值的話:
#include <stdio.h>
//值傳遞傳值
void swap( int x, int y);
int main()
{
int a=2,b=3;
printf("before:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
swap(a,b);
printf("after:實參為a,b a=%d,地址為%d b=%d,地址為%d ",a,&a,b,&b);
return 0;
}
void swap(int x,int y)
{
int tmp;
tmp=x;
x=y;
y=tmp;
printf("inside:形參為x,y x=%d,地址為%d y=%d,地址為%d ",x,&x,y,&y);
}
⑹ C語言中如何表示數值的范圍
代碼如下:
#包括< stdio, h >
Intmain()
{
Int,n。
掃描文件(「% d % d」,& s & n);
S-;//s-1;我們把周一到周日的時間設為0到6
S+=n;
S%=7;//通過調制來限定結果
S++;//轉換回1-7表示
Printf("%d\n",s);//輸出結果
返回0;
}
(6)c語言中px5擴展閱讀:
在C語言中,char一般取1個位元組,即8個二進制位。每一位都有兩個0或1的值。利用乘法原理,排列組合的個數是1002^8=256個排列。
如果是無符號字元類型,即無符號字元類型,那麼它總共可以表示256個無符號數字[0,255]。
如果它是帶符號的字元類型,即帶符號的字元或字元類型,它可以表示[-128,127],256個有符號的數字。
在有符號整數的表達式中,現在的計算機一般採用原代碼、問題代碼、補碼三種編碼方法。源代碼的表示,最高位是符號位,0是正的,答案1是負的。因此,帶符號的char類型的最大值的二進制位返回如下:
01111111//最高位是符號位,它是127
最小值的二進制位如下:
1000000//負值絕對值越大,值越小。是-128
⑺ C語言中的%x,%u分別指的是什麼
%x 和 %u 是格式字元串,配合 scanf、printf 使用。 %x 代表十六進制形式,%u 代表無符號整數。
⑻ c語言中%.5s和%5s的區別
%5s表示輸出字元至少5個字元,不夠的話左側用空格補 %.5s表示最多輸出五個字元
浮點數的列印和格式控制是sprintf 的又一大常用功能,浮點數使用格式符"%f"控制,默認保
留小數點後6 位數字,比如:
sprintf(s, "%f", 3.1415926); //產生"3.141593"
但有時我們希望自己控制列印的寬度和小數位數,這時就應該使用:"%m.nf"格式,其中m 表
示列印的寬度,n 表示小數點後的位數。比如:
sprintf(s, "%10.3f", 3.1415626); //產生:" 3.142"
sprintf(s, "%-10.3f", 3.1415626); //產生:"3.142 "
sprintf(s, "%.3f", 3.1415626); //不指定總寬度,產生:"3.142"
⑼ C語言中*p和**p有何區別
一、表示的東西不同
*p表示p代表相應數據類型在存儲單元中存儲的首地址,而這個存儲單元存儲的是相應類型數據的數值。
**p表示p也表示地址,簡單的說,這個地址對應的存儲單元存儲的數也是一個地址,而不是數值,而這個被存儲的地址對應的存儲單元存儲的數據才是真正的相應類型的數值。
二、基類型不同
例如int *p1,**p2;
兩者本質上都是指針,但是兩者的基類型不同。p1的基類型是int,換句話說p1指針指向的是int型的數據,而p2的基類型是int *換句話說p2指向的是指向int型數據的指針,即指向指針的指針。
三、用法不同
例如int *p;
那麼p就是指向int類型變數的一個指針。(即數組)
如果int**p;
那麼p就是指向int*類型指針的一個指針。(即指向一維數組的指針,即二維數組)
⑽ C語言中'5'與5的區別
第一個字元5,第二個是整形5
他們ASCII 不同'5'='0'+5;『0』的ACII尾48