嵌入式学习--C语言Day02

20240905-C语言Day2

运算符

逻辑运算符

位运算符

关系运算符

选择运算符(三目运算符)

赋值运算符

优先级

分隔符

标点符号

变量

局部变量和全局变量

常量

数值型常量

字符常量

字符串常量

标识常量

运算符

逻辑运算符

&& || !

&& 逻辑与 全真则真一假则假

|| 逻辑或 一真为真全假则假

! 逻辑非 非真即假非假即真

截断法则

逻辑与中前面的表达式为假后边不再执行返回

逻辑或中前面的表达式为真后边不再执行返回真

位运算符

二进制

&、|、^、~、<<、>>

&:位与1100

|:位1100

^相同为0,不同1

源码

反码

补码

正数

相同

相同

相同

负数

相同

符号位之外其他按位取反

反码+1

~取反

<<左移左移几位2几次方

>>右移右移几位2几次方

置一公式a|(1<<n)

置零公式a&(~(1<<n))

//两数交换
int a = 3,b = 5,c;
c=a;
a=b;
b=c;
-----------------------
a=a^b
b=a^b
a=a^b
-----------------------
a=a+b
b=a-b
a=a-b


关系运算符

><、>=、<=、==!=

选择运算符(三目运算符)

表达式1?表达式2:表达式3

赋值运算符

=、+=、-=、*=、/=、%=

a += 3 <===> a = a + 3

优先级

单算移关与异或逻条赋

单目运算符++--~!

算术运算符/ * % + -

位移运算符<< >>

关系运算符> >= < <= == !=

位与运算&

异或运算符^

位或运算符|

逻辑运算符&& ||

条件运算符? :

赋值运算符=

分隔符

空格 tab 换行

标点

英文输入法

变量

程序运行过程会发生变化

存储类型 数据类型 变量名

默认(auto) int a

存储类型:决定变量存储位置

数据类型决定开辟空间大小

名称

大小字节

取值范围

int

4

char

1

-128~127

short

2

long

324648

float

4

有效位数6-7

double

8

有效位数6-7

局部变量和全局变量

局部变量

全局变量

定义位置

函数内部

函数外部

(未初始化)

随机值

0

作用域

当前函数体内部使用

整个程序

生命周期

当前函数共存

同整个函数体共存

存储位置

栈区

全局区

常量

数值型常量

八进制十进制十六进制

浮点型常量

float double

字符常量

用单引号包裹

char

#include <stdio.h>
int main(int argc, const char *argv[])
{
	char a = 'A';
	char b = '101';
	char c = 0101;
	char d = '\101';
	printf("%c,%c,%c,%c\n",a,b,c,d);
	return 0;
}

字符串常量

用双引号包裹\0字符串结束标志

"hello" 5个字符+'\0'字符串结束标志 == 6个字符

标识常量

宏定义

格式#define 宏名 常量表达式或函数

宏名一般用大写目的变量区分开

特点:先进单纯的替换替换完之后计算

#include <stdio.h>
#define N 2
#define M N+2
#define NUM N+M/2+1

int main(int argc, const char *argv[])
{
	int a = NUM;
	printf("%d\n",a);
	return 0;
}

宏函数 了解
#include<stdio.h>
#define MAX(a,b) a>b?a:b
int main(int argc, char const *argv[])
{
    printf("%d\n",MAX(6,3)); //6 
    return 0;
}

扩展:
局部变量可以全局变量重名吗?
可以,遵循就近原则定义的函数体内部局部变量为主其他位置全局变量为主

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值