C/C++实践笔记 004
转义字符
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main1()
{
char ch = getchar(); //获取一个字符
putchar(ch); //输出一个字符
system("pause");
}
C判断是0和非0,
java、php等只有0和1
\a响铃
0 48
A 65
a 97
进制要弄得非常清楚
内存如何存放数据和指令
同一个时间,内存空间里只能保存一份值
变量的内存机制
变量表管理所有的变量,不能引用未声明的变量
只能给变量赋值,变量在内存
a+1属于寄存器,不能赋值
_asm
{
}
插入汇编
变量的赋值都是通过cpu的寄存器完成
a=10 ,10存放在代码区(只读)的常量符号表
标识符:程序中用于表示常量、变量、函数的字符序列,只能由字母、数字、下划线组成
C语言大小写不同
遵循软件工程规范,一看就懂
VC函数名变量名支持中文,gcc只有字符串可以中文
C语言老版本的编译器,GCC如果没有开启C++11支持,vc2010之前的版本,变量必须在函数调用之前定义。
初始化,新老版本编译器,新编译器提示错误,老版本不提示垃圾数据
常量分析
const int a=100;
不能直接修改常量的数据
&取地址运算符
间接赋值修改常量
* (int*) (&a)=16; //不算真正意义的常量
// *根据地址取出内容, int*类型转化为非常量类型
#define a 99
//define不能加分号,加了就是一起替换
c语言能操作内存,不能操作寄存器
define算是真正意义的常量,不能直接修改,也不能间接修改
汇编语言既能操作内存,也可以操作寄存器
define意义明确,可以实现批量修改,不能取地址,因为它是存在寄存器里的
变量交换 时空分析
时空复杂度
int temp=a;
a=b;
b=temp;
评估时空复杂度,temp增加空间1,时间3次
int a=10;
int b=5;
a=a+b; //a=15,b=5
b=a-b; //b=10,a=15
a=a-b; //a=5,b=10
空间0,赋值三次,加三次,共6次
+,-,*,/会数据越界,最安全的做法是异或
异或
变量的数据类型
进制
0代表八进制
0x代表十六进制
printf("%d",num);
以十进制输出结果
查看内存时一般是十六进制
计算机存储数据
内存是存储数据的房间
1个字代表4个字节
数据的类型
面试中常见,理解不透彻会出现问题
%f实数打印
数据类型的差别
printf不会自动完成数据类型转换
float f1=10.9;
printf("%d",f1);
直接按照整数去读实数会出错
理解语法规则,逻辑严密
数据类型的差别:不同数据类型占据的空间不同,解析方式不同
sizeof
char 1字节
int 4字节
double 8字节
sizeof是关键字,不是函数
sizeof还可以求表达式
sizeof("123")占4个字节,因为字符串默认会有一个\0结束
sizeof('A') 占1个字节
符号的作用
有符号和无符号
整数的极限
#include<limits.h> //极限的头文件
void main()
{
int num_max=INT_MAX;
int num_min=INT_MIN;
printf("max=%d,min=%d",num_max,num_min);
getchar();
}
unsigned char chnum=0; 2^8=256 0~255
数据的计算必须在极限的范围内
第一位0代表正数,1代表负数
数据在内存的排列
电脑手机 低位在低字节,高位在高字节
unix 低位在高字节
%u无符号
补码
反码正数与原码一样
补码正数与原码一样
负数反码+1
计算机是以补码的方式存储的
C/C++实践笔记 004的更多相关文章
- hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- Python编程从入门到实践笔记——if语句
Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...
- Python编程从入门到实践笔记——操作列表
Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...
随机推荐
- HTML DOM 教程
HTML DOM DOM 教程 DOM 简介 DOM 节点 DOM 方法 DOM 属性 DOM 访问 DOM 修改 DOM 内容 DOM 元素 DOM 事件 DOM 导航 一,HTML DOM 简介 ...
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十一)路径导航模块
config.xml文件的配置如下: <widget label="路径导航" icon="assets/images/lujingdaohang.png" ...
- ArcSDE安装注意事项(二)
上次安装的arcsde9.3后尝试往本机sde数据库中导入一个区局的数据库,但是每次都是导到一半就卡死不动,也没有报任何的错误,因此安装了arcsde9.3 sp2补丁,安装补丁后连接sde(非直连方 ...
- SharePoint 2013 必备组件之 Windows Server AppFabric 安装错误
1.如下图,在使用SharePoint2013产品准备工具的时候,网上下载安装Windows Server AppFabric的时候,报错,点击完成重启计算机,重新安装依然报错. 2.无奈之下,只有选 ...
- eclipse — Failed to load the JNI shared library”……\jvm.dll问题原因以及解决方案
首先上一张出现问题的图片: 出现这个问题一般是你的jdk和eclipse不是同一位的,比如你的jdk是32位的但是eclipse下载的是64位的就会导致这种问题. 解决方案:把两者都换为32或者64位 ...
- 基本动画CABasicAnimation - 完成之后闪回初始状态
基本动画CABasicAnimation 结束之后,默认闪回初始状态,那怎么解决呢? position需要设备两个属性: // MARK: - 结束后不要闪回去 anim.removedOnCompl ...
- 编写Javascript类库(jQuery版) - 进阶者系列 - 学习者系列文章
这些年主要关注于项目管理方面的工作,编码就比较少了.这几天比较空闲,就想把原来的经验沉淀下来,一个是做好记录,以后如果忘记了还能尽快找回来,第二个是写写博文,算是练练手笔吧. 言归正传,这次写的是Ja ...
- ORACLE VARCHAR2最大长度问题
VARCHAR2数据类型的最大长度问题,是一个让人迷惑的问题,因为VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型.简单的说,要看你在 ...
- ORACLE opatch命令学习实践
opatch 是ORACLE开发的用来安装,卸载,检测patch冲突.管理ORACLE所有已经安装的补丁的工具,当然这是一个命令工具.opatch命令工具一般位于$ORACLE_HOME/OPat ...
- WebAPi的可视化输出模式(RabbitMQ、消息补偿相关)——所有webapi似乎都缺失的一个功能
最近的工作我在做一个有关于消息发送和接受封装工作.大概流程是这样的,消息中间件是采用rabbitmq,为了保证消息的绝对无丢失,我们需要在发送和接受前对消息进行DB落地.在发送前我会先进行DB的插入, ...