------- 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
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9UERNBnRHFmb1IjYyxWbZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jN3EzMzcjMwIjMyMDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
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;
}
}