黑马程序员 -- C语言 指令 变量存储 二进制
来源:互联网 发布:才25岁,做程序员就很累 编辑:程序博客网 时间:2024/06/02 04:36
------- android培训、.Net培训、IOS培训、碧空海的技术博客,期待与您交流!----------
第三讲 指令 变量存储 二进制
A.Unix指令
1.编译:cc -c xxx.c(文件名显示第一个后,然后按tab键,可以快速输入)
编译成功:会生成一个.o文件
2.链接:cc xxx.o就是把我们的.o文件和C中库函数合并在一起生成一个可执行文件a.out。
3.执行:./a.out
4.打开指定文档:open 需要打开的文件.c
5.转到另外文件夹:cd 路径名
6.显示当前文件夹下的内容:pwd回车
7.建立一个文件:touch 文件名.c
8.显示当前文件夹下的内容(更加详细的):ls -l
B.变量的交换
1.利用第三方变量来交换
int temp;
int b = 12;
int a = 14;
temp = a;
a = b;
b = temp;
2.不利用第三方变量
a = b - a;
b = b - a;
a = b + a;
c.变量的内存分析
1.内存以字节单位
1GB = 1024MB = 1024 x 1024KB =1024 x 1024 x1024B
int a = 10;
int b = 20;
int c;
//整形数据a和b声明并初始化,就晓得变量存储了什么值。而c声明了但是没有初始化,虽然分配了相应的地址但是没有值(也可以说c的值是不确定的)。
2.编译环境和类型所占字节数关系
D.break、continue、return的使用介绍
1.break
使用场合:
switch语句:退出整个switch语句
循环结构中:while、do while、for:退出整个循环语句
注意点:
仅仅对最近循环有效
2.continue
使用场合:
循环结构:while、do while、for:结束当前这次的循环体,进入下次循环。
注意点:
仅仅对最近循环有效
3.return
作用是:
退出当前函数。
返回一个具体的值给函数调用者。
如果没有明确返回值类型,默认返回整形。
void代表没有返回值。
就算明确了返回值,也可以没有任何返回值。
E.函数联合应用注意点
1.函数的定义放在.c文件中。函数声明放在.h文件中。
2.如果要使用某个.c文件中定义的函数,只需要#include这个.c文件所对应的.h文件。
3..h文件的作用就是被别人拷贝,编译和链接的时候不需要.h文件。
F.二进制
1.四种进制方式(逢几进制加1):十进制、二进制、八进制、十六进制。
十进制:12
二进制:1100
八进制:14
十六进制:C
2.代码中进制显示形式。
//默认情况下,就是十进制
int num1 = 10;
//二进制表示(0b或者0B开头)
int num2 = 0b1010;
//八进制(0开头)
int num3 = 012;
//十六进制(0x或者0X开头)
int num4 = 0x0A;
3.多种输出格式
printf("%d %o %x %u %c %s %f %e",a,s, d, f, g, h, j, k);
4.进制在内存中的存储细节
//一个int类型数据占据四个字节,一个字节占八位,共32位(bit)
//0000 0000 0000 0000 0000 0000 0000 1010
//内存寻找为 由大到小,优先分配大的地址给数据存储,并且每个地址优先分配给高位
int num = 12;
int num = 13;
5.二进制和十进制转换
0b11001 = 1 X 2的0次方 + 0 X 2的1次方 + 0 X 2的2次方,,,,1 X 2的4次方 = 25
//十进制转二进制
67 = 64 + 2 + 1 = 2的6次方 + 2的1次方 + 2的0次方
=0b1000000 + 0b10 + 0b1
=0b1000011
6.程序练习
输出整数在内存中的二进制形式
void printBinary(int n)
{
int bits = sizeof(n) * 8;
while(bits-- >= 0)
{
printf("%d", n >> bits& 1);
if(bits % 4 == 0)
{
printf(" ");
}
}
}
写一个函数,将小写字母转换成大写字母
void uper(char c)
{
//如果是小写字母则进入
if(c >= 'a' && c <= 'z')
{
return c - ('a' - 'A')
}else {
//不是小写字母则返回原来数据
return c;
}
}
- 黑马程序员 -- C语言 指令 变量存储 二进制
- 黑马程序员——c语言学习---变量与存储
- 【黑马程序员】【C语言】变量
- 黑马程序员 C语言------预处理指令学习
- 15、黑马程序员-C语言预处理指令
- [黑马程序员][C语言]预处理指令
- 黑马程序员-----------C语言基础-----------预处理指令
- 黑马程序员_iOS开发C语言基础之二进制内存存储解析与字符操作
- 黑马程序员----C语言变量作用域,存储类型,变量总结,递归思想篇
- 黑马程序员——c语言的全局变量和局部变量,static和extern,预处理指令
- 黑马程序员-----c语言学习笔记之预处理指令、函数、变量
- 黑马程序员-C语言常量、变量
- 黑马程序员--C语言基础-变量类型
- 黑马程序员---C语言变量作用域
- 黑马程序员——C语言—结构体变量存储原理
- 黑马程序员——C语言中变量的存储类别
- 黑马程序员——IOS学习笔记(C语言存储方式和变量作用域)
- 黑马程序员---C语言学习笔记之变量地址获取及存储原理
- [阿牛的牛肉串]
- 工厂模式
- Mjpeg‐stream移植
- c++ substr()字符函数的使用方法
- 计算机知识图谱
- 黑马程序员 -- C语言 指令 变量存储 二进制
- HTTP协议
- 5.1 Spring的数据访问哲学
- 使用asm.jar捕获Android动态屏幕
- URAL 1157. Young Tiler (数学啊 )
- Java中的锁ReentrantLock,condition 与synchronized,volatile
- java中synchronized关键字实现线程同步互斥(一)
- 第一周项目一
- 你应当知道的Java牛人