C语言day03(运算符、变量)

C语言day03

运算符

  1. 逻辑运算符

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

|| 逻辑或: 一真则真,全假则假

! 逻辑非:非真则假,非假则真

当数字作为判断条件是,0为假,非0为真

截断法则

逻辑与 && :当前面的表达式为假时,后面的表达式就不再执行,返回假

逻辑或 || :当前面的表达式为真时,后面的表达式就不再执行,返回真

例:

int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n=______

n仍然等于2

前面的m=a>b,a>b 为假,这是根据截断法则后面的表达式不再执行,所以n仍为2

2.关系运算符

> < >= <= == !=

  1. 位运算符

& | ^ ~ << >>

& 位与 : 全1则1,有0 则0
| 位或 : 有1则1,全0则0
^ 异或 : 相同为0,不同为1
~ 取反 : 1变0,0变1
<< 左移运算符

左移几位就在右边补几个零

10<<2 --> 1010 (补两个0) ---> 101000(40)

相当于 10*2^2 左移几位就相当乘以2的几次方

>> 右移运算符

右移几位就在右边舍弃几位

10>>2 --.> 1010 (舍弃两位:10) --> 10(2)

相当于 10/2^2 右移几位就相当于除以2的几次方

置一公式:a | (1<<(n-1))
置零公式:a & (~(1<<(n-1))

原码、反码、补码

整数在计算机中以补码的形式存储、计算

原码

反码

补码

正数

相同

相同

相同

负数

相同

除符号位,其他位按位取反

反码加1

例:

int a=15;

int b=-12;

int c = a & b;

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

15 原码(补码):

0000 0000 0000 0000 0000 0000 0000 1111

-12 原码:

1000 0000 0000 0000 0000 0000 0000 1100

-12 反码:

1111 1111 1111 1111 1111 1111 1111 0011

-12 补码:

1111 1111 1111 1111 1111 1111 1111 0100

位与:(有0 则0,全1则1)

0000 0000 0000 0000 0000 0000 0000 1111

1111 1111 1111 1111 1111 1111 1111 0100

0000 0000 0000 0000 0000 0000 0000 0100------->4

练习:

实现两个数的交换

(1)通过一个中间变量temp

int a=1,b=2;
int temp;
temp = a;
a = b;
b = temp;
printf("a=%d b=%d\n",a,b);        //a=2 b=1

(2)通过三次异或操作实现交换

int a=1,b=2;
a = a^b;
b = a^b;
a = a^b;
b = temp;
printf("%d %d\n",a,b);         //a=2 b=1


  1. 三目运算符(选择运算符、条件运算符)

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

int a=5,b=8;
int c=a > b ? a : b;
pritnf("c=%d\n",c);              //c=8

  1. 赋值运算符

= += -= /= *= %=

  1. 运算符优先级

单算移关与 异或逻条赋

单目运算符: ++ -- ! ~

算术运算符: * / % + -

移位运算符: << >>

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

位与运算符: &

异或运算符: ^

位或运算符: |

逻辑运算符: && ||

条件运算符: ?:

赋值运算符: += -= *= /= %=

  1. 变量

概念:在程序的运行过程中会发生变化的量

定义格式:存储类型 数据类型 变量名

例:int a;//定义一个整型变量a

数据类型:

类型

字节

取值范围(了解)

int

4

-2^31 ~ 2^31 -1

char

4

-2^7 ~ 2^7-1

double

8

-2^15 ~ 2^15 -1

float

1

32:-2^31 ~ 2^31 -1

64:-2^63 ~ 2^63 -1

short

2

有效位数:6-7

long

32位:4 64位:8

有效位数15-16

变量分类:

  1. 全局变量:定义在函数外部,在整个程序中都可以被访问
  2. 局部变量:定义在函数内部,在整个函数中都可以被访问

局部变量和全局变量的区别:

局部变量

全局变量

定义位置

函数内部

函数外部

初始值(不赋值)

随机值

0

作用域

整个函数中都可以

整个程序中都可以

存储位置

栈区

全局存储区

生命周期

和整个函数共存亡

和整个程序共存亡

  1. 常量

概念:在程序运行中不会发生变化的量

分类:

字符型常量

字符串型常量

整型常量

浮点型常量

指数常量

标识常量

1》字符型常量

使用单引号' '包裹的内容都叫字符,单引号只能包裹一个字符

'a'---->字符常量a

a ---->变量a

'!' ----->字符!

'1' ----->字符1

'\n' ----->换行

\ :转义字符 后面可以跟随 字母 数字(八进制:以0开头 十六进制:以x开头 不是0x)符号 转义字符表示一个字符

例:

'\x41' ---->'\101'----->'A'

printf("你说:\"ssssss\" ");

转义字符后加标点符号,表示将该标点符号转移为普通的标点符号使用

例:

'\\' :表示将转义字转义为普通的斜杠字符 \

'?' : 表示将?转为普通的字符?

2》字符串常量

使用双引号" "包过的内容都叫字符串,系统会在字符串最后添加 \0 作为字符串结束的标志

例:

"hello" ----->字符串hello 字符的长度+1(\0)

"abc"

3》整型常量

1 2 3 4 5 6

4》浮点型常量

1.2 3.4 5.66

5》指数常量

3*10^2------>3e2

2*10^5------>2e5

e表示乘以10的次方

注意:e的后面不能跟小数,只能跟整数

6》标识常量

宏定义:用于标识常量或者表达式 (也叫宏替换 宏代替)

定义格式:#define 宏名(一般大写) 常量或者表达式

特点:只做单纯的替换 不会进行计算

驼峰命名法:

大驼峰:FirstName //每一个单词的首字母都大写

小驼峰:firstName //除了第一个单词首字母不大写,剩下的都大写

  1. 输入输出语句

1》按照格式输出

格式:

类型

格式

int

%d

float

%f

double

%lf

char

%c

字符串

%s

十六进制

%#x 、 %x

八进制

%#o 、 %o

地址

%p

指数

%e

输出 : printf

man 手册 第三卷 printf

#include<stdio.h>

int printf(const char *format, ......);

功能:输出内容

参数:1.字符串 如果包含格式则有后续参数

2.要和第一个参数中的格式相对应

返回值:输出的字符个数

输入 :scanf

man 手册 第三卷 scanf

功能:可以输入内容

参数:1.字符串(只能写格式,不能多写任何东西)

2.用来保存数据的变量的地址

返回值:正确输入的个数

这个有种类截断法则的情况,如果你输入的值只要前面有一个不符合,则不在判断后面的是否符合;

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值