C语言的一些注意点

条件语句:(面试经常使用)面试

  • 短路原则
    • 在或运算中,若是左值为1,则右不计算
  • 断路原则
    • 在与运算中,若是左值为0,则右不计算

while & do...while区别数组

  • while 先判断后执行,有可能一次也不会执行
  • do...while 先执行后判断,至少会执行一次

break & continue函数

  • break用于开关语句中,表示结束当前的switch结构,若是用在while,do...while,for中时是跳出循环
  • continue用于循环中时,只中止这一次循环进入下一次循环

值传递的特色ui

  • 操做的是不一样的内存空间,形参的改变不会影响到实参的变化,传递完成即释放,

scanf()函数读取问题指针

  • 若是读取十进制数在输入时先输入的字母则不会有读取结果,若是先输入的是数字加字母的组合则会读取数字而省缺字母

数组初始化code

  • 数组除了在定义并初始化的时候可以对他进行总体操做外,其它任何状况不容许对数组进行总体操做
  • 数组名表明着数组的首地址,同时对应着数组第一个元素的地址
  • 数组是从低到高的连续性地址排列

字符串四大函数生命周期

  • strlen
  • strcpy
  • strcat
  • strcmp

strlen & siseof区别seo

  • sizeof是运算符,计算数组时会包含'\0'
  • strlen是函数,返回实际长度不包含'\0'

本身在实现函数时必定要加断言assert.h中assert();内存

当二维数组为参数传递的时候必须指定全部维数的大小或者省略第一维,可是不能省略第二维或更高维的大小作用域

指针

  • 注意:不管何种类型的指针,它的sizeof的大小都是4;
  • 注意:在任什么时候候,一个指针变量只能指向一个地址值,也就是说只能指向一个数据
  • 注意:指针常量是const修饰在前,做为在指针上,效果为指针不可改变地址,却能够修改指向的地址内的值
  • 注意:常量指针是const修饰在类型以后,做用在指向的内存值上,效果为指针可变地址,却不能够修改地址内的值

栈&堆

  • 数据类型:栈是先进后出,堆是二叉树
  • 栈是自动申请自动释放;堆是手动申请手动释放,动态内存分配;

static做用

  • 1:默认初始化而且只初始化一次
  • 2: 当它修饰于局部变量的时候,延长生命周期
  • 3:当修饰于全局变量或者函数的时候,限定了做用域

结构体&枚举&联合体

//总体为4字节,缘由在于指针
typedef struct student
{
  int id; //占位4字节
  char name[20];//占位20字节
}*STU;//别名是指针4个字节
//总体为全部成员占位之和
typedef struct student
{
  int id; //占位4字节
  char name[20];//占位20字节
}STU;
//枚举类型大小始终为4字节,(猜测:可能性为枚举在运算过程当中返回的值为int类型且只返回一个有关)
//枚举内元素初始化赋值,但初始化后,后一个元素的下标值取决在于前一个下标的基础上递增1
//枚举内元素若是未初始化,哪么默认的下标从0开始,能够把枚举当成一个另类数组
//枚举内元素分隔与数组同样,惟一不一样的是能够给元素赋值
//右大括号后也同数组同样用分号结束

enum time{A,B,C};//枚举
int  array{1,2,3,4};//数组
//自行体会类似处
//共用体大小取决于成员最大值
union Lian{
  int id;
  char name[20];
};

union Lian test;

test.id = 10;
strcpy(test.name,"TEST");

printf("%d",test.id);//这个会输出异常
printf("%s",test.name);//这个正常输出

//=================================

test.id = 10;
printf("%d",test.id);//正常输出

strcpy(test.name,"TEST");
printf("%s",test.name);//正常输出

//猜测

typedef&define

  • #define是C指令,用于各类数据类型定义别名与typedef相似
    • typedef仅限于为类型定义符号名称
    • #define不只能够为类型定义别名,也能为数值定义别名
    • typedef是由编译执行解释的
    • #define语句是由预编译器进行处理的
  • 示例
#define true 1
#define false 0
#define uint  unsigned
相关文章
相关标签/搜索