通过一段时间的学习,各位朋友有没有发现C语言其实是不是很简单,很直白呢?
就是对内存操作,在寄存器和内存里面搬东西.
char
代表1个字节的内存
short 代表2个字节.
int
代表4个字节.
以此类推.............
指针变量也是一块内存,如果是32位,全都是4个字节.
64位,全都是8个字节.
回忆结构体
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct
student {
char l_name[10];
int l_age;
};
void main() {
student l_A, l_B, l_C;
strcpy(l_A.l_name,
"杜小可");
l_A.l_age = 20;
strcpy(l_B.l_name, "李小可");
l_B.l_age =
21;
strcpy(l_C.l_name, "王小可");
l_C.l_age =
22;
//上面这种方式,就是下面写法的简写形式,而且看起来更加直观.
char l_A_name[10] = "杜小可";
int
l_A_age = 20;
char l_B_name[10] = "李小可";
int l_B_age =
21;
char l_C_name[10] = "王小可";
int l_C_age =
22;
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct
student {
char l_name[10];
int l_age;
};
void main() {
student l_A, l_B, l_C;
student
l_arr_students[3] =
{
{"杜小可",20},
{"李小可",21},
{"王小可",22}
};
//上面这种方式,就是下面写法的简写形式,而且看起来更加直观.
strcpy(l_A.l_name, "杜小可");
l_A.l_age =
20;
strcpy(l_B.l_name, "李小可");
l_B.l_age =
21;
strcpy(l_C.l_name, "王小可");
l_C.l_age =
22;
system("pause");
}
结构体在内存中是对齐的,它会按照其中最大的一个元素数据类型进行对齐.
所以说,对操作系统和编译器有一定的了解,才能写出比较高效的一个代码.
4KB的图片,经常压缩变成了2KB.
假如百度一天的访问量是100亿次.
网络流量就差距很大了.
服务器的网络吃不消,经济开销也巨大的.
内存对齐