连接学习和工作
基本介绍
变量:顾名思义,可以变化的量。在计算机当中通常标记着一小块内存,我们可以随时修改。
int a = 5;
char c = ‘a’;
常量:顾名思义,不可变的量。比如上例中的5,’a’都是常量。
强类型:c语言是强类型的,就是说,不同类型如果不做强制类型转换,或者默认的类型转化,是无法赋值的。
int a = “abcd”;
把一个字符串放到整形内存当中是不行的。
三大流程
顺序流程
接水 —> 烧水 —> 关火 —> 晾一下 —> 喝热水
分支流程
int a = 5;
int b = 6;
if (a > b)
{
printf ("a > b");
}
else
{
printf ("a < b");
}
在维护工作中,其实大量的工作是在别人的代码里面添加else if。因为有些特殊场景之前的开发人员没有考虑到。
切记:尽量不要直接修改别人代码,可以在else if里面去调用自己得函数,而不是直接去修改之前开发人员的函数去适应现有业务,风险高,而且极难控制影响。
还有switch case的结构,自行百度。
循环结构
int a = 0, b = 5;
while (a < b)
{
a++;
}
循环结构在业务流程中往往比较少,以为如果业务迟迟不退出循环,用户会骂街,比如之前android微信的15个句号导致的微信挂掉的问题就是死循环导致的。但在平台服务上,太多循环结构。比如:webserver,mysql的监听服务,这些不能随便就退出循环。server宕机一次,一般一个人抗不下来。
数组
int a[3] = {0, 1, 2}
指针
int a = 5;
int *p = a;
指针是一个很简单的概念,但被教科书介绍的很复杂。现在给你一张纸(虚拟内存),我在纸上画上方格(字节)。现在我要找第100个方格。这个100其实就是指针。我要找第209390个方格,这个209390个方格就是指针。比方说a放在了209390个方格中,即209390个方格中是5。p放在了第100个方格中,那么第100个方格中放入的就是209390。
二级指针也好,三级指针也好,都是这么个原理。
数据结构
数据结构通常会封装在STL(c++),集合框架(java)中。平时较为常用的是数组,链表,栈,队列,哈希表,红黑树。