C语言的运算符

本文深入探讨了C语言的基础语法、高级特性及其在实际应用中的高效利用,涵盖了函数、运算符、变量赋值、自增运算、关系运算、逻辑运算、逗号运算和条件运算等核心知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>


int print() //函数的定义:函数功能的实现

{

printf("1234\n");


return0;

}


//main函数:主函数,是程序的入口函数

int main()

{

/*

//调用函数:是为了执行函数内的代码段

print(); //函数的调用

*/

//格式化打印 print format

printf("hello c!\n");

printf("%d\n", __STDC__);//判断编译器是否遵循C标准,值为1表示遵循,为0表示不遵循


return0;

}

#include <stdio.h>


//sizeof运算符

int sizeof_opr()

{

printf("size 1 = %lu\n",sizeof(1));

printf("size char c = %lu\n",sizeof('c'));//'c'在作为sizeof的运算数时,是取出它的ascii码的值来进行运算的,已经被隐式类型转换为int类型了

char cc ='c';

printf("size cc = %lu\n",sizeof(cc)); //1


int x;

printf("size x = %lu\n",sizeof(x));

printf("size x = %lu\n",sizeof x);

printf("size x = %lu\n",sizeof(int));

//printf("size x = %lu\n", sizeof int); //错误形式

//sizeof的结果是在编译时已经确定下来了,在运行时才会进行的++运算是不会进行的

printf("== size: %lu\n",sizeof(x++ + ++x));

double dy =1.0;

printf("== size: %lu\n",sizeof(x++ + ++dy));

printf("x = %d\n", x);


float ff;

printf("size ff = %lu\n",sizeof(ff));


double dd;

printf("size dd = %lu\n",sizeof(dd));


return0;

}


//算术运算符

int alog_opr()

{

int a =1, b = 2

int c = a + b * a - b;//1+2*1-2

printf("c = %d\n", c);


double f1 =3, f2;

f2 = f1 /10;

printf("f2 = %.3lf\n", f2);//%.3lf表示打印的数值保留小数点后的三位


a =1;

//f2 = f1 / a; //f2 = f1 / (double)a;

f2 = f1 / (double)a;//(类型) 强制类型转换符,是将现在a的类型强制转换为double类型


//隐式类型转换的原则:将类型范围窄的转为类型范围宽的

a = f1 / a; //a = (int)(f1 / (double)a)  导致的结果是精度的丢失

//错误认识:a = (int)f1 / a;


a =1;

//f1 % a; //%只能用在整数类型上

printf("result = %d\n", (int)f1 % a);

printf("result = %d\n", -a % -10); //%的结果是由%前的表达式的正负决定的


return0;

}


//赋值运算符

int assign_opr() 

{

//赋值运算符:首先寻址,找到x所在的内存空间,将数值1存放进x所在的这四个字节的空间

//赋值操作是将数值放到该变量所在的内存空间中

int a, b =2, c;

c = a = b; //c = (a = b);


return0;

}


//自增运算符

int increment_opr()

{

int c =1;

//自增 a++ ++a

c = c +1;

c += 1;//c = c + 1;

//c = c++; //在同一个表达式中,既使用一个变量的值,又改变这个变量的值,是不被推荐使用的


int d = c++; 

printf("c = %d, d = %d\n", c, d);//4 3


d = ++c;

printf("c = %d, d = %d\n", c, d);//5 5


c =1;

//d = c++ + ++c; //d = 1 + 3

//printf("c = %d, d = %d\n", c, d); //c=3 d=4

d = ++c;

d += c++; //d = d + c++; 

printf("c = %d, d = %d\n", c, d);//c=3 d=4


return0;

}


//关系运算符

int relation_opr()

{

//C中,关系运算得到的结果只有两种,真和假。结果为0就是假,不为0就为真。通常,假用0去表示,真用1表示

int a =13, b = 13;

int result = a >= b;

printf("result = %d\n", result);

printf("ret = %d\n", a != b);


return0;

}


//逻辑运算符

int logic_opr()

{

int a =10, b = 13;

int result = (a ==0) || (b != 0);


printf("result = %d\n", result);


printf("result = %d\n", !!!result);


return0;

}


//逗号运算符

int comma_opr()

{

int a =3, b = 4; //,不是逗号运算符,是在声明中用来分隔变量的


int result = (a++, b++, b++);

printf("comma: result = %d\n", result);


return0;

}


//条件运算符

int condition_opr()

{

//打印两个变量中比较大的

int a =3, b = 4;

int c = a > b ? a : b;

printf("max = %d\n", c);


//打印三个变量中比较大的

int d =6;

int max = c > d ? c : d;

printf("max = %d\n", max);


//可读性太差,不建议此种方式

//max = (a > b ? a : b) > d ? (a > b ? a : b) : d;


return0;

}


int main()

{

printf("hello world!\n");

printf("%s\n","hello world!");


int m =10;

char ccc ='0';

printf("m + ccc = %d\n", m + ccc);//混合类型运算,编译器会进行隐式类型转换,m+(int)ccc


sizeof_opr();

printf("----------------\n");

alog_opr();

printf("----------------\n");

assign_opr(); 

printf("----------------\n");

increment_opr();

printf("----------------\n");

relation_opr();

printf("----------------\n");

logic_opr();

printf("----------------\n");

comma_opr();

printf("----------------\n");

condition_opr();

return0;

}


#include <stdio.h>


int main()

{

char a ='A'; //a所在的内存中存放的是'A'对应的ASCII码的二进制数

a =65;

a = 10;//a = '\n';


//int b;

//b = 20;


//char c = '';


//char arr[] = "";

char arr[] ="hello world";

printf("size c = %lu\n",sizeof(arr));


long/*int*/ li;

printf("size long = %lu\n",sizeof(long));


return0;

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值