運算符與表達式
算數(shù)運算符:
實例1:
#include
int main(intargc,char*argv[]){
??? inta = 10,b = 20;
??? intc = a + b;
??? floattemp = 2.55;
??? c = a +temp;
??? printf("c的值%d\n",c);
??? return0;
}
實例2:
#include
int main(int argc,char *argv[]){
??? int a =3,b = 5;
??? //取余
??? int c = a% b;
??? printf("%d\n",c);
??? int d = -a% b;
??? int f = -a% b;
??? int x = a% - b;
??? printf("%d\n%d\n%d\n",d,f,x);
}
實例3:
#include
int main(intargc,char*argv[]){
??? inti;
??? scanf("%d",&i);
??? inta = i / 100;
??? intb = i % 100 / 10;
??? intc = i %100 %10;
??? printf("%d\t%d\t%d\n",a,b,c);
??? //如158取余200 = 158。
??? printf("%d\n",(i%200));
}
關系運算符:
實例1:
#include
int main(intargc,char*argv[]){
??? inta = 18,b = 19;
??? printf("%d\n",a>b);
??? printf("%d\n",a>=b);
??? printf("%d\n",a
??? printf("%d\n",a<=b);
??? printf("%d\n",a==b);
??? printf("%d\n",a!=b);
??? return0;
}
賦值運算符表達式:
實例1:
#include
int main(intargc,char*argv[]){
??? inta = 20,b =15;
??? intc = a % b;
??? printf("%d\n",c);
??? inta1 = -20;
??? intc1 = b+=a1;
??? printf("%d\n",c1);
??? inti = 50;
??? printf("%p\t",i);
??? printf("%p\n",&i);
??? return0 ;
}
條件運算符及表達式:
實例1:
#include
int main(intargc,char*argv[]){
??? inta,b,m;
??? printf("輸入數(shù)字a的值:");
??? scanf("%d",&a);
??? printf("輸入數(shù)字b的值:");
??? scanf("%d",&b);
??? m=a>b?a:b; //將a和b比較,將較大的值賦值給b
??? printf("您輸入的數(shù)a為%d、b為%d\n最大的值是:%c=%d\n",a,b,m==a?'a':'b',m);
??? return0;
}
逗號運算符:
實例1:
#include "stdio.h";
int main(intargc,char*argv[]){
??? intx= 10,y = 15 ,z= 0;
??? z= (x+10,y+10);
??? printf("%d\n",z);
??? return0;
}
實例2:
#include "stdio.h"
int main2(intargc,char*argv[]){
??? //遵循算數(shù)優(yōu)先級,所以結果等于18;
??? inti;
??? i=? 20-2,9-6/4,8/2;
??? printf("%d\n",i);
??? //對比:
//結果等于4;
??? inta;
??? a= (20-2,9-6/4,8/2);
??? printf("%d\n",a);
??? return0 ;
}
逗號表達式不一定求出整個逗號表達上的試的值。
也不是逗號出現(xiàn)的地方都能構成逗號表達式,比如定義a,b,c,d幾個變量其作用就只是變量之間的間隔符號。表達式中,例如:
表達式1,(表達式2,表達式3)這樣就變成了嵌套的一種情況。逗號表達式1,表達式2,......,表達式n,整個逗號表達式就取表達式n的值。
Sizeof運算符:
#include "stdio.h"
int main(intargc,char*argv[]){
??? inta= 10;
??? doubleb= 3.14;
??? //a*b占用了8個字節(jié)
??? printf("a*b的值占用了%d字節(jié)\n",sizeof(a*b));
??? //a占了4個字節(jié)
??? printf("a占用了%d字節(jié)\n",sizeofa);
??? //int類型占了4個字節(jié)
??? printf("int型占用了%d字節(jié)\n",sizeof(int));
??? //long
int類型占了4個字節(jié)
??? printf("long int型占用了%d字節(jié)\n",sizeof(longint));
??? //float類型占用了4個字節(jié)
??? printf("float型占用了%d字節(jié)\n",sizeof(float));
??? //double類型占用了8個字節(jié)
??? printf("double型占用了%d字節(jié)\n",sizeof(double));
??? //char類型占用了1個字節(jié)
??? printf("char型占用了%d字節(jié)\n",sizeof(char));
??? return0;
}
Sizeof是一種單目操作符,它并不是函數(shù),它用于計算變量或者某種類型的量在內存中所占用的字節(jié)數(shù)。用法:sizeof(類型或者變量名)它只針對數(shù)據類型,而不是針對變量。
條件運算符及表達式
條件表達式一般為:表達式1?表達式2:表達式3。運算符(?:)有三個操作數(shù),所以稱為三目運算符,它是c語言中唯一一個三目運算符。如果表達式1為真,則運算表達式2,整個條件表達式的值為表達式2的值;如果表達式1的值為假,則運算表達式3,那么整個條件表達式的值就為表達式3。