C语言学习 -- 运算符、表达式

运算符、表达式

1.取整取余

#include <stdio.h>

int main()
{
	int a = 1234;

	printf("%d\n", a / 1000);
	printf("%d\n", a % 1000 / 100);
	printf("%d\n", a % 100 / 10);
	printf("%d\n", a % 10);

	return 0;
}

2.条件运算符

	a > b ?  a  :   b
#include <stdio.h>

int main()
{
	int a = 1, b = 2;
	int c;

	c = (a > b) ? a : b;   //三目运算符
	printf("%d\n", c);

	return 0;
}

3.运算符优先级

	函数符号()、数组下标[ ] > 单目运算符>算数运算符>移位运算符>关系运算符>逻辑运算符>三目运算符

4.a++和++a的区别

a ++:等价于a = a + 1,不等价于a + 1
++ a:执行a所在语句之前,a加1
a ++:执行a所在语句之后,a加1

(1).
#include <stdio.h>

int main()
{
	int a = 1;
	//a++;    //等价于 a = a + 1;  不等价于 a + 1

	printf("%d\n", ++a);  //执行a所在语句之前,a加1
	printf("%d\n", a++);  //执行a所在语句之后,a加1
	printf("%d\n", a);

	return 0;
}
(2).
#include <stdio.h>

int main()
{
	int a = 4 ;
	a += a ++;
	printf("%d\n",a);      //a=9
    
    a=4;
	a += ++ a;
	printf("%d\n",a);      //a=10
 
   a=4;
	++ a += a;
	printf("%d\n",a);       //a=10
	
   a=4;
	++ a += a ++;
	printf("%d\n",a);       //a=11
	
   a = 4;
	++ a += ++ a;
	printf("%d\n",a);       //a=12
}

5.换行符号的运用(printf中加’\n’和不加’\n’的区别)

(1).加’\n’
#include <stdio.h>

int main()
{
	int i;

	for (i = 0; i < 5; i++)
	{
		printf("helloworld!\n");   //'\n'两个作用:1、换行  2、刷新缓冲区
		sleep(1);                //延时1s
	}

	return 0;
}
(2).不加’\n’
#include <stdio.h>

int main()
{
	int i;

	for (i = 0; i < 5; i++)
	{
		printf("helloworld!");   //'\n'两个作用:1、换行  2、刷新缓冲区
		fflush(stdout);          //手动刷新缓冲区
		sleep(1);                //延时1s
	}

	return 0;
}

6.printf()和scanf()的使用

%d:有符号整型
%u:无符号整型
%o:八进制输出
%x:十六进制输出
%f:输出float型
%c:输出字符型
%s:输出字符串
%p:输出地址

(1).printf() 的使用
#include <stdio.h>

int main()
{
	int a = 100;
	float b = 1.111111;
	char ch = 'a';
	char *ptr = "helleworld";

	printf("%d\n", a);   //整型输出
	printf("%u\n", a);   //无符号输出
	printf("%o\n", a);   //八进制输出
	printf("%x\n", a);   //十六进制输出
	printf("%f\n", b);   //输出float类型数据
	printf("%c\n", ch);  //输出字符
	printf("%s\n", ptr); //输出字符串
	printf("%p\n", &a);  //输出地址

	printf("%10d\n", a);  //a的长度为10(左对称)
	printf("%-10d\n", a); //a的长度为10(右对称)

	printf("%6.3f\n", b); //b的长度为6,保留3位小数
	printf("%3.5f\n", b); //保留5位小数

	return 0;
}

(2).scanf()的使用
int a = 1;
char ch = 'a';
char *str ;
scanf("%d",&a);
scanf("%c",&ch);

7.位操作

	例:输入一个字符,判断出这个字符的二进制码中有多少个1。
#include <stdio.h>

int main()
{
	char ch;
	int i,count=0;

	scanf("%c",&ch);

	for(i=0;i<8;i++)
	{
		if(ch & 1 == 1) count++;

		ch=ch>>1;
	}
	printf("%d",count);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值