一、C语言编程中的几个基本概念

1、#include<>与#include""区别

这个题目考查大家的基础能力,#include<>用来包含开发环境提供的库。#include""用来包含.c/.cpp文件所在目录下的头文件;

言外之意:用户在工程里面自己创建的头文件用#include""包含

注意:有些开发环境可以在当前目录下自动搜索(包含子目录),有些开发环境需要在指定明确的文件或路径。

2、switch(c)语句中c可以是int,long,char,unsigned int类型;即可以隐式转换为整型

3、const 用途

(1):欲组织一个变量被改变,可以使用const关键字。在定义const变量时,通常需要对其进行初始化,因为以后就没机会改变

(2):对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;

(3):在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4):对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;

(5):对于类的成员函数,有时候必须指定其返回值为const类型,以使其返回值不为“左值”;

4、#ifndef/#define/#endif

#ifndef _USER_H_
#define _USER_H_  #define NAME_MAX 32
#define SEX_MAX 32
#define TEL_MAX 32
#define ADD_MAX 32
#define PEOPLE_MAX 32  #include<stdio.h>
#include<stdlib.h>
#include<string.h>  typedef struct student
{  char name[NAME_MAX];  char sex[SEX_MAX];  int age;  char tel[TEL_MAX];  char add[ADDER_MAX];
}Stu;  typedef struct contact
{  int capacity;  Stu *human;  int count_p;
}Con, *Pcon;  void add_people(Pcon pcon);
int find_people(Pcon pcon);
void delete_people(Pcon pcon);
void alter_people(Pcon pcon);
void show_people(Pcon pcon);
void clean_people(Pcon pcon);
void order_people(Pcon pcon);
void inittel(Pcon pcon);
void menu();
void free_mem(Pcon pcon);  #endif    #define NAME_MAX 32
#define SEX_MAX 32
#define TEL_MAX 32
#define ADD_MAX 32
#define PEOPLE_MAX 32  #include<stdio.h>
#include<stdlib.h>
#include<string.h>  typedef struct student
{  char name[NAME_MAX];  char sex[SEX_MAX];  int age;  char tel[TEL_MAX];  char add[ADDER_MAX];
}Stu;  typedef struct contact
{  int capacity;  Stu *human;  int count_p;
}Con, *Pcon;  void add_people(Pcon pcon);
int find_people(Pcon pcon);
void delete_people(Pcon pcon);
void alter_people(Pcon pcon);
void show_people(Pcon pcon);
void clean_people(Pcon pcon);
void order_people(Pcon pcon);
void inittel(Pcon pcon);
void menu();
void free_mem(Pcon pcon);  #endif  

(1):主要作用是防止头文件被重复定义

(2):这些条件预编译多用于对代码的编译控制,增加代码的可裁剪性,通过宏定义可以轻松的对代码进行裁剪;

5、全局变量和局部变量

先看一段代码:

#include<stdio.h>
void test()
{int num = 0;num ++;printf("%d\n", num);
}
int main()
{int i = 0;for(i=0;i<10;i++){test();}return 0;
}

上述代码运行结果将会是连续的 1 1 1 1 1 1 1 1 1 1

而不是  1 2 3 4 5 6 7 8 9 10

是因为:

#include<stdio.h>
void test()
{int num = 0;num ++;printf("%d\n", num);
}

test()函数中定义的num是局部变量当主函数调用test()函数式创建变量,调完即刻销毁

当用static修饰是结果发生了变化

#include<stdio.h>
void test()
{static int num = 0;num ++;printf("%d\n", num);
}
int main()
{int i = 0;for(i=0;i<10;i++){test();}return 0;
}

(1):区别 全局变量储存在静态数据库当中,局部变量在堆栈。其实,由于计算机没有通用数据寄存器,则函数的参数、局部变量的返回值只能保存在堆栈中。(局部变量太大可能导致栈溢出,所以建议把大数组放在main()函数之外,以防止栈溢出);

例如如下程序将会导致栈溢出:

#include<stdio.h>
int main()
{int arr[1024*1024];return 0;
}

C语言面试篇(一)总结相关推荐

  1. 【iOS高级资深工程师面试篇】②、2022年,金九银十我为你准备了《iOS高级资深工程师面试知识总结》 Objective-C语言特性部分1/2 分类-关联对象-扩展-代理

    iOS高级资深工程师面试篇系列 - 已更新3篇 UI部分1/3 -UITableView-事件传递&视图响应 UI部分2/3 -图像显示原理-UI卡顿&掉帧 UI部分3/3 -UIVi ...

  2. 面试篇1:嵌入式C语言面试常见问题

    嵌入式C语言面试常见问题 入门C语言20问20答: 01源程序的编译及链接是怎样一个过程? 02编写第一个简单的C语言程序 03C语言是强类型的语言,这是什么意思? 任何程序都要处理数据,计算机可以处 ...

  3. ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)

    iOS面试题 一共分为笔试题和面试题两部分 笔试题 一共分为10个 总共613题 面试题 一共400题 笔试题 一个10个系列 分别为 ①(语法篇) 共147题 已更新 ②(常识篇) 共72题 已更新 ...

  4. “程序猿”面试篇(一)聊项目

    "程序猿"面试篇(一)聊项目 下面是我简历中写到的项目实战经历: 实战经历 项目经历 镇江十野物流管理系统开发/开发组成员 2019年06月 - 2020年06月 项目简介:该项目 ...

  5. 面试篇1:C/C++,Linux

    面试篇1:C/C++,Linux 1. C/C++内存有哪几种类型? C中,内存分为5个区: 堆(malloc).栈(如局部变量.函数参数).程序代码区(存放二进制代码).全局/静态存储区(全局变量. ...

  6. 计算机网络 - 面试篇

    计算机网络 - 面试篇 综合 OSI七层模型 讲一下网络五层模型,每一层的职责? 在浏览器地址栏输入一个URL后回车,执行的全部过程 tcp.udp.http.https等常用协议 Cookie 和 ...

  7. c语言面试编程笔试题,C语言面试编程题

    C语言面试编程题 发布时间:2021-04-10 在C语言中,输入和输出是经由标准库中的一组函数来实现的.在ANSI/ISO C中,这些函数被定义在头文件;中.下面就由第一范文网小编为大家介绍一下C语 ...

  8. 互联网测试校招系列4:面试篇

    大家好,我是财哥,今天给大家继续带来互联网测试岗位校招系列第四弹:面试篇. 前面讲到笔试题目的准备,如果你笔试通过,那么恭喜你,你离校招offer只差一场面试了. 首先提出一个问题:从求职者/招聘方两 ...

  9. 【面试篇】寒冬求职季之你必须要懂的原生JS(中)

    互联网寒冬之际,各大公司都缩减了HC,甚至是采取了"裁员"措施,在这样的大环境之下,想要获得一份更好的工作,必然需要付出更多的努力. 一年前,也许你搞清楚闭包,this,原型链,就 ...

最新文章

  1. 3月7日 ArrayList集合
  2. 多个反斜杠的消除处理
  3. Elasticsearch 参考指南(介绍)
  4. 一个蚂蚁前端程序员,曾经的辛酸面试历程
  5. Express-静态资源-路由-ajax-session
  6. Python使用广度优先和深度优先两种方法遍历目录树
  7. SnapKit 源码解读(一):Extensions
  8. 数据库程序设计课堂笔记
  9. 帮助朋友干活,平生第一次收到月饼
  10. Atitit 趋势管理之道 attilax著
  11. Eucalyptus
  12. 【统信UOS】扫描仪设备管理驱动安装
  13. taocat服务器的作用,随笔2_tww
  14. 信息系统项目管理师学习笔记1——信息化与信息系统1
  15. python自定义二元一次函数_Python实现的拟合二元一次函数功能示例【基于scipy模块】...
  16. Word排版计算机类科研论文的格式保证
  17. 华米新一代智能可穿戴芯片2020年第四季度量产
  18. html 透明的圆形,CSS3 花蝴蝶形状的3D透明圆球旋转变幻
  19. BGP距离矢量动态路由协议
  20. dpkg: 处理软件包 xxxxxxxx (–configure)时出错:

热门文章

  1. logisim新手实验
  2. 如何在VScode中利用git来下载GitHub上的源码
  3. 计算机三级网络技术最全知识点总结【2】
  4. 计算机组网的有线传输媒介主要依赖,家庭无线局域网组建毕业论文
  5. 流程图+BPMN+脑图 JointJS++ 3.6.3 Crack
  6. 优衣库46万客户信息遭泄露,这些年,你的信息还被谁泄露过?
  7. JAVA工程师个人职业规划
  8. Android车载应用开发与分析(13)- 系统设置-蓝牙设置
  9. 解决电脑浏览器打不开网页问题
  10. audio音频播放标签样式优化自定义