2day_C基

【1】数据类型
1--- 基本数据类型
int char

2--- 构造数据类型
定义数据类型
用类型去定义变量

【2】bool
1--- <stdbool.h>
2--- 数据只有两个状态:0、1

【3】char
1--- 一个字节
2--- signed char a = -5; //1 000 0101 (最高位变更成符号位)

二进制 十进制 //-128 ~ +127
0000 0000 0
1000 0000 -128

1111 1111 -127
0111 1111 +127

1000 0001 -1
0000 0001 +1

3--- unsigned char b = 5; //0 ~ 255

【4】数据存储(二进制补码)
char a = -5;

正数:源码、反码、补码都一样

负数:
1、存储时 (源码->反码-> 补码)
1000 0101 源码
1111 1010 反码:符号位不变,其它位取反
1111 1011 补码:反码加1

2、读取时 (补码->反码-> 源码)

【5】整形数据
int 占4字节
short 占2字节
long 占4字节(32位操作系统)

【6】浮点型数据
float 占4字节
double 占8字节

【7】常量
整形常量:
12 012 0x12
指数常量:
12.34e-1 ==> 12.34 * 10^-1
0.1234e+2 ==> 0.1234 * 10^2

字符常量:
‘A’

字符串常量:字符串就是以‘\0’作为结束标志。
“A”

宏定义:
#define N 4

【8】存储模型

<存储类型> <数据类型 > <变量名> ;

auto:不写的时候默认为auto类型
1--- 修饰一个局部变量时:存储期与函数同步
2--- 修饰一个全局变量时:存储期与程序同步

register:数据存储在寄存器中,只可以修饰局部变量。

static:静态存储
1--- 数据的存储期与程序同步
2--- static 修饰的变量只初始化一次
3--- static 修饰的数据默认初始化为0

extern :访问外界数据时做一个标识

【9】强制类型转换
(数据类型)

【10】运算符

1--- 算数运算
+ - * / %(参与运算的数据必须是整形数据)

++ -- (自增、自减,用于变量的运算符,隐含赋值操作)

2--- 关系运算符(结果只有两个状态:0、1)

> >= < <= == !=

3--- 逻辑运算(结果只有两个状态:0、1)
与: &&(一假则假)

或: ||(一真则真)

非: !(真变假,假变真)

4--- 位运算(参与运算的是二进制补码)

取反运算 : ~ (0变1,1变0;)
与 : &
或 : |
异或 : ^ (相同为0,不同为1)

x>>n : x / 2^n
x<<n : x * 2^n

5--- 三步运算
int a = 5, b = 6;

a ^= b;
b ^= a;
a ^= b;

完成数据交换,参与运算的必须是变量,针对于基本数据类型使用

6--- 条件运算符

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

表达式1为真:执行表达式2
表达式1为假:执行表达式3

时间: 2024-11-06 14:11:52

2day_C基的相关文章

当this指针成为指向之类的基类指针时,也能形成多态

this指针: 1)对象中没有函数,只有成员变量 2)对象调用函数,通过this指针告诉函数是哪个对象自己谁. 1 #include<iostream> 2 using namespace std; 3 class Shape 4 { 5 public: 6 //void cal_display(Shape* this) 7 void cal_display(){ 8 display(); 9 this->display(); 10 } 11 private: 12 virtual vo

[.net]基元线程同步构造

1 /* 基元线程同步构造 2 用户模式构造: 3 易变构造(Volatile Construct) 4 互锁构造(Interlocked Construct):自旋锁(Spinlock) 乐观锁(Optimistic Concurrency Control,乐观并发控制) 5 内核模式构造: 6 事件构造(Event) 7 信号量构造(Semaphore) 8 互斥体构造(Mutex) 9 */ 10 11 //易变构造,Volatile.Write()之前的所有字段写入操作,必须再该方法调用

基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作

在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思路和特点,对Controller进行了封装.使得控制器能够获得很好的继承关系,并能以更少的代码,更高效的开发效率,实现Web项目的开发工作,整个控制器的设计思路如下所示. 从上图的设计里面可以看到,我把主要能通过抽象封装的CRUD方法都放到了BusinessController<B, T>类里面,

C++中虚基类

摘自<C++程序设计> 如果一个派生类有多个直接基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接共同基类数据成员的多份同名成员. C++提供虚基类(virtual base class)的方法,使得在继承间接共同基类时只保留一份成员. 下面举例说明: 在如下的图中: Person类是Student和Teacher的基类,而Graduate类又继承自Student和Teacher类. 如果使用虚基类的话,Graduate将有两份age拷贝,两份gender拷贝,两份name

Xor HYSBZ - 2115 (线性基)

Xor HYSBZ - 2115 题意:给一个树,求1到n的最长路径.这里的路径定义为异或和. 线性基~~ 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 struct LiBase{ 5 ll a[63]; 6 //初始化 7 void init(){ 8 memset(a,0,sizeof(a)); 9 } 10 //插入 11 bool insert_(ll x){ 12 for(int

线性基小节

1.线性基的异或集合中每个元素的异或方案唯一. 2.线性基二进制最高位互不相同. 3.线性基中元素互相异或,异或集合不变. 摘自百度文库 线性基能相互异或得到原集合的所有相互异或得到的值. 线性基是满足性质1的最小的集合 线性基没有异或和为0的子集. 证明: 反证法:设线性基S={a1,a2...,an}: 若有子集a1^a2^...^at=0,则a1=a2^a3^...^at,则舍弃a1后一定能通过剩余的元素异或出所有需要a1参与异或的值.设Y=a1^X,因为{a1,a2,...,an}是一组

UI(UGUI)框架(二)-------------UIManager单例模式与开发BasePanel面板基类/UIManage统一管理UI面板的实例化/开发字典扩展类

UIManage单实例: 1 /// 单例模式的核心 2 /// 1,定义一个静态的对象 在外界访问 在内部构造 3 /// 2,构造方法私有化 4 5 private static UIManager _instance; 6 7 public static UIManager Instance 8 { 9 get 10 { 11 if (_instance == null) 12 { 13 _instance = new UIManager(); 14 } 15 return _instan

[BeiJing2011]元素[贪心+线性基]

2460: [BeiJing2011]元素 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1245  Solved: 652[Submit][Status][Discuss] Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石.一般地,矿石越多则法力越强,但物极必反:有时,人们为了获取更强的法力而使用了很多矿石,却在炼制过程中

从设计基类及其派生类看继承关系

继承能够定义可重用.扩展或修改父类行为的子类.但基类的静态构造函数.实例构造函数和析构函数不能被派生类继承. 在下面实例中,定义一个基类Publication用于表示任何类型的出版物以及派生至Publication的其他类型Book类,由此也可以扩展为定义其他类型如:Magazine.Journal.Newspaper和Article. 在设计基类Publication时我们必须考虑到如下关系: 1.要在基类中添加哪些成员 2.基类是否用作派生类模板的抽象基类 3.类层次结构的扩展空间大小,要开