当前位置: 首页 > news >正文

洛阳市建设工程评标专家网站公司做免费网站建设

洛阳市建设工程评标专家网站,公司做免费网站建设,网页视频下载安卓,做个电商平台需要哪些步骤数据类型#xff08;基本内置类型#xff09; char //字符数据类型 short //短整型 int //整型 long //长整型 long long //更长的整型 float //单精度浮点数 double //双精度浮点数 类型的基本归类 整形家族#xff1a; …数据类型基本内置类型 char        //字符数据类型 short        //短整型 int        //整型 long        //长整型 long long        //更长的整型 float        //单精度浮点数 double        //双精度浮点数 类型的基本归类 整形家族 char:  unsigned char;  signed char short: unsigned short [int] ;  signed short [int] int: unsigned int;  signed int long:  unsigned long [int];  signed long [int] 浮点数家族 float   double 构造类型 数组类型 结构类型struct 枚举类型enum 联合类型union 指针类型 int *pi;        char *pc;        float* pf;        void* pv; 空类型 void表示空类型无类型 通常应用于函数的返回类型、函数的参数、指针类型 原码、反码、补码 原码 反码将原码符号位不变其他位依次按位取反就可以得到反码 补码反码1 就得到补码 对于整型来说数据存放内存中其实存放的是补码使用补码可以将符号位和数值域统 一处理同时加法和减法也可以统一处理CPU只有加法器此外补码与原码相互转换其运算过程 是相同的不需要额外的硬件电路。 大小端  大端存储模式数据的低位保存在内存的高地址中而数据的高位保存在内存的低地址中 小端存储模式数据的低位保存在内存的低地址中而数据的高位保存子啊内存的高地址中。 为什么有大小端模式之分 为在计算机系统中我们是以字节为单位的每个地址单元 都对应着一个字节一个字节为8 bit。但是在C语言中除了8 bit的char之外还有16 bit的short 型32 bit的long型要看具体的编译器另外对于位数大于8位的处理器例如16位或者32 位的处理器由于寄存器宽度大于一个字节那么必然存在着一个如何将多个字节安排的问题。因 此就导致了大端存储模式和小端存储模式 变量的命名 只能由字母包括大写和小写、数字和下划线_组成不能以数字开头长度不能超过63个字符变量名中区分大小写的变量名不能使用关键字  常量 字面常量const 修饰的常变量   1、定义变量为常量一旦赋值就不能再修改它的值 2、修饰函数的参数可以确保在函数体内不能修改这个参数的值从而提供了更安全的参数传递。 #define 定义的标识符常量枚举常量  转义字符 \        在书写连续多个问号时使用防止他们被解析成三字母词 \‘           用于表示字符常量 \“           用于表示一个字符串内部的双引号 \\           用于表示一个反斜杠防止它被解释为一个转移序列符 \a          警告字符蜂鸣 \b          退格符 \f           进制符 \n          换行 \r           回车 \t           水平制表符 \v          垂直制表符 \ddd       ddd表示1-3个八进制的数字。如\130表示字符X \xdd        dd表示2个十六进制数字。如\x30表示字符0 常见关键字 auto  break   case  char  const   continue  default  do   double else  enum   extern float  for   goto  if   int   long  register    return   short  signed sizeof   static struct  switch  typedef(类型重命名) union  unsigned   void  volatile  while 指针变量 我们可以通过取地址操作符取出变量的内存起始地址把地址可以存放到一个变量中这个变量就是指针变量。 野指针指针指向的位置是不可知的随机的、不正确的、没有明确限制的 野指针成因1、指针未初始化 2、指针越界访问 3、指针指向的空间释放 如何规避野指针指针初始化小心指针越界指针指向空间释放即使置NULL避免返回局部变量的地址指针使用之前检查有效性 指针数组  指针数组是指针还是数组    是数组。存放指针的数组 arr 表示的是数组的地址而不是数组首元素的地址。 字符函数和字符串函数 求字符串长度        strlen 长度不受限制的字符串函数        strcpy  strcat  strcmp 长度受限制的字符串函数介绍        strncpy  strncat  strncmp char * strncpy ( char * destination, const char * source, size_t num ); 拷贝num个字符从源字符串到目标空间。 如果源字符串的长度小于num则拷贝完源字符串之后在目标的后边追加0直到num个。 字符串查找        strstr  strtok 错误信息报告        strerror 字符操作         内存操作函数        memcpy   memmove   memset   memcmp PP是P是char类型的时候 移动了一个字节 字节对齐int char int占12个字节。如何缩减字节 通过将int设置为short、使用位图去保存、将字节小的类型放在一块。 逻辑操作有哪些 与、或、异或 动态内存分配 malloc 和 free malloc和free都声明在 stdlib.h 头文件中。 C语言提供了一个动态内存开辟的函数 void* malloc(size_t size); 如果开辟成功则返回一个指向开辟好空间的指针。如果开辟失败则返回一个NULL指针因此malloc的返回值一定要做检查。返回值的类型是 void* 所以malloc函数并不知道开辟空间的类型具体在使用的时候使用者自己来决定。如果参数 size 为0malloc的行为是标准是未定义的取决于编译器。 void free(void* ptr); free函数用来释放动态开辟的内存。 如果参数 ptr 指向的空间不是动态开辟的那free函数的行为是未定义的。如果参数 ptr 是NULL指针则函数什么事都不做。 void* calloc (size_t num, size_t size); 函数的功能是为num个大小为size的元素开辟一块空间并且把空间的每个字节初始化为0.与函数malloc区别只在于calloc会在返回地址之前把申请的空间的每个字节初始化为全0 void* realloc(void* ptr, size_t size) ptr是要调整的内存地址size调整之后新大小返回值为调整之后的内存起始位置这个函数调整原内存空间大小的基础上还会将原来内存中的数据移动到新的空间 常见的动态内存错误 对NULL指针的解引用操作对动态开辟空间的越界访问对非动态开辟内存使用free释放使用free释放一块动态开辟内存的一部分对同一块动态内存多次释放动态开辟内存忘记释放内存泄露 文件的打开和关闭 文件指针 FILE* pf; //文件指针变量 通过文件指针变量能找到与它关联的文件。 文件的打开和关闭 FILE * fopenconst char * filename, const char * mode; int fcloseFILE * stream; 文件使用方式含义如果指定文件不存在r只读为了输入数据打开一个已存在的文本本文件出错w只写为了输出数据打开一个文本文件建立一个新的文件a追加向文本文件尾添加数据建立一个新的文件rb只读为了输入数据打开一个二进制文件出错wb只写为了输出数据打开一个二进制文件建立一个新的文件ab追加向一个二进制文件尾添加数据建立一个新的文件r读写为了读和写打开一个文本文件出错w读写为了读和写建议一个新的文件建立一个新的文件a读写打开一个文件在文件尾进行读写建立一个新的文件rb读写为了读和写打开一个二进制文件出错wb读写为了读和写新建一个新的二进制文件建立一个新的文件ab读写打开一个二进制文件在文件尾进行读和写建立一个新的文件 文件缓存区  const的作用 1、定义变量为常量一旦赋值就不能再修改它的值 2、修饰函数的参数可以确保在函数体内不能修改这个参数的值从而提供了更安全的参数传递。 static的作用 Static修饰变量按照作用范围的不同变量分为局部变量和全局变量。如果用static修饰变量不论这个变量是全局的还是局部的都是存储在全局/静态数据区。 静态局部变量使用static修饰符定义的局部变量即使在声明时为赋初值编译器也会把它初始化为0。全局变量只对当前文件可见其他文件不可见其他文件可以定义与其同名的变量两者互不影响。在定义不需要与其他文件共享的全局变量时加上static关键字能够有效地降低程序模块之间的耦合避免不同文件同名变量的冲突且不会误使用。 static修饰函数使用方式和全局变量类似在函数的返回类型前加上static就是静态函数特性 静态函数只能在声明它的文件中可见其他文件不能引用该函数不同的文件可以使用相同名字的静态函数互不影响 #define 1、定义标识符 #define MAX 1000 #define reg register          //为 register这个关键字创建一个简短的名字 #define do_forever for(;;)     //用更形象的符号来替换一种实现 #define CASE break;case        //在写case语句的时候自动把 break写上。 // 如果定义的 stuff过长可以分成几行写除了最后一行外每行的后面都加一个反斜杠(续行符)。 2、定义宏  #define 机制包括了一个规定允许把参数替换到文本中这种实现通常称为宏macro或定义 宏define macro。 #define name( parament-list ) stuff 其中的 parament-list 是一个由逗号隔开的符号表它们可能出现在stuff中。 3、#define替换规则 1. 在调用宏时首先对参数进行检查看看是否包含任何由#define定义的符号。如果是它们首先 被替换。 2. 替换文本随后被插入到程序中原来文本的位置。对于宏参数名被他们的值所替换。 3. 最后再次对结果文件进行扫描看看它是否包含任何由#define定义的符号。如果是就重复上 述处理过程。 #和## 1、使用 # 把一个宏参数变成对应的字符串。 int i 10; #define PRINT(FORMAT, VALUE)\printf(the value of #VALUE is FORMAT \n, VALUE); ... PRINT(%d, i3);//产生了什么效果 2、## 的作用 ##可以把位于它两边的符号合成一个符号。 它允许宏定义从分离的文本片段创建标识符。 宏和函数 属性#define定义宏函数代码长度每次使用时宏代码都会被插入到程序中。除了非常 小的宏之外程序的长度会大幅度增长函数代码只出现于一个地方每 次使用这个函数时都调用那个 地方的同一份代码执行速度更快存在函数的调用和返回的额外开 销所以相对慢一些操作符优先级宏参数的求值是在所有周围表达式的上下文环境里 除非加上括号否则邻近操作符的优先级可能会产生 不可预料的后果所以建议宏在书写的时候多些括 号。函数参数只在函数调用的时候求 值一次它的结果值传递给函 数。表达式的求值结果更容易预 测。带有副作用的参数参数可能被替换到宏体中的多个位置所以带有副作 用的参数求值可能会产生不可预料的结果。函数参数只在传参的时候求值一 次结果更容易控制。参数类型宏的参数与类型无关只要对参数的操作是合法的 它就可以使用于任何参数类型。函数的参数是与类型有关的如 果参数的类型不同就需要不同 的函数即使他们执行的任务是 相同的。调试宏是不方便调试的函数是可以逐语句调试的递归宏是不能递归的函数是可以递归的 栈和堆的区别 栈是一种运算受限的线性表只允许在表的一段也就是栈顶进行插入和删除操作。栈分为顺序栈和链式栈两种。因为栈是一种线性结构所以可以使用数组或链表(单向链表、双向链表或循环链表)作为底层数据结构。使用数组实现的栈是顺序栈使用链表实现的叫链式栈。两者区别是顺序栈中的元素地址连续链式栈中的怨怒是地址不连续。 堆堆是一种常用的树形结构是一种特殊的完全二叉树分为大根堆和小根堆。 1、存储内容不同 栈存放局部变量、函数参数。存放在栈中的数据只在当前函数及下一层函数中有效一旦函数返回了这些数据也就自动释放了。 堆堆中的具体内容可以通过程序员安排 2、分配方式不同 栈是向低地址扩展的数据结构是一块连续的内存区域。只要栈的剩余空间大于所申请空间系统将为程序提供内存否则将报异常提示栈溢出。 堆是向高地址扩展的数据结构是不连续的内存区域。 3、空间大小不同 栈linux下默认的栈空间大小是8M或10M 堆堆的大小受限于计算机系统中有效的虚拟内存 进程和线程的区别 进程操作系统资源分配的最小单元。一个进程拥有的资源有⾃⼰的堆、栈、虚存空间页表、文件描述符等信息。 1.PID进程ID是进程的唯一身份标识但是它不是固定不变的是每次启动进程时动态分配的。 2.进程状态①新建状态(NEW)  ②就绪状态  ③运行状态  ④阻塞状态  ⑤销毁状态 3.优先级决定进程的执行顺序 线程线程是操作系统能够进行运算调度的最小单元。它被包含在进程中是进程中实际运行的单位。一个进程中可以并发多个线程每个线程执行不同的任务 。 优势创建线程比创建进程快销毁线程比销毁进程更快带哦都线程比调度进程更快 进程 VS 线程 1、根本区别进程是操作系统进行资源分配的最小单元。线程是操作系统进行运算调度的最小单元。 2、从属关系进程中包含了线程线程属于进程 3、开销不同进程的创建、销毁和切换的开销都远大于线程 4、拥有资源不同每个进程都有自己的内存和资源一个进程中的线程会共享这些内存和资源。 5、控制和影响力子进程无法影响父进程而子线程可以影响父线程如果主线程发生异常会影响其所在进程和子线程。 6、CPU利用率不同进程的CPU利用率比较低因为上下文切换开销较大而线程的CPU的利用率较高上下文的切换速度快。 7、操作者不同进程的操作者一般是操作系统线程的操作者一般是编程人员。 技术面这次我表现的怎么样这个岗位招多少人这样判断你自己的竞争力有多大 大学学习方式 在遇到困难后是如何处理的 从项目入手对Vue的理解是否使用过组件库 Vue.js是一个用于创建用户界面的开源JavaScript框架也是一个创建单页面应用的Web应用框架。Vue在构建用户界面时能够编写页面的结构使用基础CSS美化样式处理用户和界面之间的交互。 对ajax的理解js如何实现的回调函数 let,var,const的区别为什么要使用let 相同点都可以声明变量 不同 1、var 存在变量提升另外两个不存在 2、var定义多次变量时后面所定义的内容会覆盖前面的但不会报错。let、const所定义的变量出现多次声明后会报错。 3、var、let声明的变量可以再次赋值而const声明的变量不能再次赋值 4、var声明的变量没有自身的作用域而let、const声明的变量由自身的作用域 Vue中父类组件如何向子类组件传递信息 整个后端的数据流转过程 你的项目是如何实现的鉴权 对于java反射的理解什么时候用过反射 MySQL中索引的好处和坏处都有哪些索引类型用过哪些 left join和inner join的区别如果有A表 100条 B表 10条A left join B 会有多少条记录 1、返回不同。inner join只返回两个表中联结字段相等的行。left join返回包括左表中的所有记录和右表中联结字段相等的记录 2、数量不同。inner join的数量小于等于左表和右表中的记录数量。left join的数量以左表中的记录数量相同。 3、记录属性不同。inner join:不足的记录属性会被直接舍弃。left join不足的记录属性用NULL填充。 SQL优化常用的几种方法 1、对查询进行优化。尽量避免全表扫描首先应考虑在where及order by涉及的列上建立索引 2、尽量避免在where子句中使用 ! 或 操作符否则将引擎放弃使用索引而进行全表扫描 3、尽量避免在where子句中对字段进行null判断否则将导致引擎放弃使用索引而进行全表扫描如select id from t where num is null 可以在num列设置默认值0然后通过等号查询select id from t where num0 4、应尽量避免在where子句中使用or来连接条件否则将导致引擎放弃使用索引而进行全表扫描。如select id from t where num10 or num20 此查询可优化为select id from t where num10 union all select id from t where num 20 值传递和引用传递的区别 java中传递数据库对象时是引用传递还是值传递 对hadoop中hive sql和mapreduce的理解是否使用过 TCP、UDP区别 TCP(Transmission Control Protocol)传输控制协议是一种面向连接的、可靠的、基于子节流的传输层通信协议 UDP(User Datagram Protocol)用户数据报协议Internet协议集支持一个无连接的传输协议。UDP为应用程序提供了一种无需建立连接就可以发送封装的IP数据包的方法 区别 TCP面向连接通过三次握手建立连接四次挥手解除连接;UDP是无连接的即发送数据之前不需要建立连接这种方式为UDP带来了高效的传输效率但也导致无法确保数据的发送成功。TCP是可靠的通信方式。通过TCP连接传送的数据TCP通过超时重传、 数据校验等方式来确保数据无差错不丢失不重复且按序到达而UDP由于无需连接的原因将会以最大速度进行传输但不保证可靠交付也就是会出现丢失、重复等等问题。TCP面向字节流实际上是TCP把数据看成一连串无结构的字节流由于连接的问题当网络出现波动时连接可能出现响应问题UDP是面向报文的UDP没有拥塞控制因此网络出现拥塞不会使源主机的发送速率降低。每一条TCP连接只能是点到点的而UDP不建立连接所以可以支持一对一一对多多对一和多对多的交互通信也就是可以同时接受多个人的包。TCP需要建立连接首部开销20字节相比8个字节的UDP显得比较大。TCP的逻辑通信信道是全双工的可靠信道UDP则是不可靠信道。 如何引用一个已经定义过的全局变量 extern 可以引用头文件的方式也可以用extern关键字如果用引用头文件方式来引用某个在头文件中声明的全局变量假设你将那个变量写错了那么在编译期间会报错如果你用extern方式引用时假定你犯了同样的错误那么在编译期间不会报错而在连接期间报错。 冒泡排序的时间复杂度 On^2)交换排序冒泡、快速_DalaQL的博客-CSDN博客  堆栈溢出一般是由什么原因导致的 没有回收垃圾资源  JVM虚拟机详解-CSDN博客 SQL Server是否支持行级锁有什么好处 支持设立封锁机制主要是为了对并发操作进行控制对干扰进行封锁保证数据的一致性和准确性行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其他用户所修改。因而行级锁即可保证数据的一致性又能提供数据操作的进发性。  项目中遇到的难点如何解决的 规划 面向对象的特征多态原理 什么是虚函数怎么实现 多态和继承在什么情况下使用 除了多态和继承还有什么面向对象方法 一个对象另一个对象会发生什么赋值构造函数  如果new之后出了问题直接return。会导致内存泄露怎么办智能指针raii 多进程fork后不同进程会共享哪些资源 多线程里线程的同步
http://www.zqtcl.cn/news/216963/

相关文章:

  • 易语言如何做浏网站湛江高端网站开发
  • 窦各庄网站建设wordpress 意见反馈
  • 建站公司还有前途吗海拉尔做网站的公司
  • 素材网站有哪些如何做简单视频网站
  • 如何做网站公证宁波网站建设公司比较好
  • 网站建设公司行情新网站建设风格
  • 30天网站建设实录 pdf微信分销工具
  • 深圳电子商务网站 开发招标文件范本
  • 常州网站制作包括哪些网站商城模板
  • wordpress下拉式菜单哈尔滨seo优化公司
  • 网站添加百度地图标注怎么在百度免费推广
  • 如何用照片做模板下载网站南京做网站seo的
  • 网站建设平台方案设计删除网站内容
  • 建设部人才交流中心网站wordpress theauthor
  • 物联网网站开发公司比较还做的调查网站
  • 网站建设教程 冰美人视频全国网站建设排名
  • 对网站策划的看法公司宣传册设计与制作图片
  • 手机医疗网站网站模板的制作怎么做
  • 那种投票网站里面怎么做百度浏览器网站入口
  • 宁波城乡建设局网站有专门做面包的网站么
  • 网站推广方法及特点网站添加内容
  • c2c网站怎么做网页模板布局
  • 知果果网站谁做的房产信息网显示已签约
  • 高校学风建设专栏网站亿速云
  • iis 发布asp网站代码编程入门
  • 游戏的网站策划应该怎么做微信小程序开发300元
  • 网站关键词优化怎么弄做网站找哪家最好
  • 提供零基础网站建设教学网站做302重定向
  • 无锡网站推广外包服务页面设计参评
  • 班级网站设计素材有没有专业做盐的网站