1.从根本上说,计算机只能识别和执行由1和0组成的二进制指令,不能识别和执行用高级语言写的指令,必须用编译器将源程序翻译为二进制目标程序。
2.字节:计算机用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数。
3.Short into 2字节,double都为8字节,long Int 4字节,char 1字节
4.程序中无论把浮点数写成小数还是指数形式,在内存中都是以指数形式存储的。
5.Register 请求编译器尽可能快的将变量存在cpu内部寄存器中。
6.Cpu从内存寄存器中取东西,内存寄存器从内存中取东西。
7.Strlen的计算不包括\0,sizeof的计算包括\0.
8.二维数组用指针偏移形式的输出为:*(*(p+i)+j);
9.冒泡排序的方法:
源数据 5 4 3 2 1
第一趟:
第一遍 4 5 3 2 1
第二遍 4 3 5 2 1
第三遍 4 3 2 5 1
第四遍 4 3 2 1 5
第二趟:
第一遍 3 4 2 1 5
第二遍 3 2 4 1 5
第三遍 3 2 1 4 5
第三趟:
第一遍 2 3 1 4 5
第二遍 2 1 3 4 5
第四趟:
第一遍 1 2 3 4 5
如果有n个数据,则需要执行n - 1趟循环 for(int i = 1; i < n; i++)
那么第 i 趟循环,需要执行n - i次比较大小 for(int j = 0; j < n– I; j++)
依次取出相邻的两个数,将较大值放到后面 if( a[j] > a[j+1] ) 交换a[j]、a[j+1]的值
10.动态生成二维数组的方法代码如下:
// C++ 动态创建二维数组.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<iostream>
using namespace std;
int _tmain(int argc,_TCHAR*argv[])
{
int a, b;
cin >> a >> b;
//pa存放的是动态创建的具有a个整型指针的一维数组
int **pa = new int*[a];
for (int i = 0; i < a; i++)
{
//动态生成含有b个整形数据的数组,将返回的数组头地址赋值给 数组pa的第i个元素,
pa[i] = new int[b];
}
for (int i = 0; i < a; i++)
{
for (int j = 0; j < b; j++)
{
//对动态生成的二位数组pa里面的各个元素进行赋值
pa[i][j] = i*j;
cout << pa[i][j] << " ";
}
cout << endl;
}
for (int i = 0; i < a; i++)
{
//首先释放掉各行的一维数组
delete[] pa[i];
}
//最后释放存放各个一维数组头地址的 数组pa
delete[]pa;
system("pause");
return 0;
}
11.动态生成的二维数组内存地址不一定连续。
12.递归函数:直接或者间接的调用函数本身。
原理:函数每次执行都会保留函数的入口地址,直到找到最终的结果,然后退栈,按照保留的函数地址进行出栈。