转义字符

#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的更多相关文章

  1. hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse

    生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...

  2. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  3. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  4. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  5. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  6. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  7. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  8. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

  9. Python编程从入门到实践笔记——操作列表

    Python编程从入门到实践笔记——操作列表 #coding=utf-8 magicians = ['alice','david','carolina'] #遍历整个列表 for magician i ...

随机推荐

  1. javascript俄罗斯方块游戏

    在线试玩:http://keleyi.com/game/5/ 操作指南:键盘方向键←→控制左右移动,↑键变形,↓键快速下落. 别看这段js代码只有短短的100多行,效果却非常不错,用键盘的方向键操作, ...

  2. 自定义加载loading view动画组件的使用。

    在github上找的一个有点酷炫的loading动画https://github.com/Fichardu/CircleProgress 我写写使用步骤 自定义view(CircleProgress  ...

  3. Mac常用shell命令

    几个常用命令 pwd 命令名称:pwd 英文:print work directory 描述:查看当前工作目录的完整路径 ls 英文全称: list 描述:列出目录下的内容清单 常用参数: -l:列出 ...

  4. android 动画效果

    动画资源 一.分类: (一).概要:         3.0以前,android支持两种动画模式,补间动画(tween animation),帧动画(frame animation),在android ...

  5. iOS之触摸及手势

    触摸事件 iOS中的事件: 在用户使用app过程中,会产生各种各样的事件.iOS中的事件可以分为3大类型:    view的触摸事件处理: 响应者对象: 在iOS中不是任何对象都能处理事件,只有继承了 ...

  6. iOS Xcode, 解决“Could not insert new outlet connection: Could not find any information for the class named”的问题。

    在Xcode中,我们可以在StoryBoard编辑界面或者是xib编辑界面中通过“Control键+拖拽“的方式将某个界面元素和对应的代码文件连接起来,在代码文件中创建outlet. 不过,如果你的运 ...

  7. jqGrid 操作一些总结

    1. 手动往grid中添加数据 $("#orgGridId").jqGrid('addRowData',mydata[i].id,mydata[i]); mydata[i].id: ...

  8. Linux iptables 防火墙

    内容摘要 防火墙 防火墙定义 防火墙分类 netfilter/iptables netfilter 设计架构 iptables 简述 iptables 命令详解 命令语法 table 参数 comma ...

  9. DDD实施经验分享—价值导向、从上往下进行(圈内第一个吃螃蟹DDD实施方案)

    阅读目录: 1.背景 2.从业务开始 3.从战略到战术 4.借助外力推动研发(QA.领导.自动化测试) 5.领域模型与SAAS平台的内核(价值最大化) 6.最后 1.背景 DDD本身的技术就不介绍了, ...

  10. iptables一次性封多个ip,使用ipset 工具

    ipset是什么? ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也 ...