`

编程常识的学习

 
阅读更多

程序编译一般需经预处理、编译、汇编和链接几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。

静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的复本,因此节省了很多内存。

反思:

1. 常量尽可能使用 int 类型,尽量少用字符串类型;

2. 对文件的存储可以向对数据库的操作一样,写成一个或几个类,对文件的操作方法集中起来,不要写的到处都是;

3. 对网络的操作,可以分开写,但是一些共同的代码考虑是否可以抽出来写成一个类方法;

4. 网络的基础知识学习;

==============================================================

类型是所有程序的基础,类型告诉我们数据代表什么意思以及可以对数据执行哪些操作。

静态类型 (statically typed) 语言:在编译时执行类型检查,在使用某个某个名字之前,必须先告知编译器改名字的类型,c++ 和 java 都是静态类型语言

动态类型语言:在运行时才检查语句中对象的类型,例如 python,javaScript

函数:程序员可以使用函数把行为抽象成可调用的计算单元

typedef 的作用:

1、为了隐藏特定类型的实现,强调使用类型的目的;

2、简化复杂的类型定义,使其更易理解;

3、允许一种类型用于多个目的,同时使得每次使用该类型的目的明确;

使用预编译命令来对应多重包含

c++ 中每个变量都有作用域,每个对象都有生命期

变量提供了程序可以操作的存储区 (一块内存),c++ 中每一个变量都有特定的类型,该类型决定了变量的内存大小和布局、能够存储于该内存中的值的取值范围以及可应用在该变量上的操作集。一般称呼是“变量”和“对象”。

程序设计语言的一些共同特性:

内置数据类型,如整型、字符型等;

表达式和语句:表达式和语句用于操作上述类型的值;

变量:程序员可以使用变量对所用的对象命名;

控制结构:如 if 和 while,程序员可以使用控制结构有条件的执行或重复执行一组动作;

函数:程序员可以使用函数把行为抽象成可调用的计算单元;

大多数现代程序语言都采用两种方式扩充上述基本特征集:允许程序员通过自定义数据类型扩展该语言;提供标准类库,这些类库定义了一些并非内置在语言中的使用函数和数据类型。

变量是计算机里一块特定的内存,它由一个或多个连续的字节所组成。每个变量都有一个名称,可以用该名称表示内存的这个位置,以提取它包含的数据或存储一个新的数值。

int salaryl; // 变量声明 它声明了变量的名称

指针是可以存储地址的变量,存储在指针中的地址通常是另一个变量。指针变量包含一个地址。变量可以由包含其地址的指针来操作。一个指针变量必须指定它所指的变量类型,编译器会根据变量类型来处理它所指的内存的内容。

 

一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

指针是一种特殊的变量,所存放的是内存的地址,通过指针变量可访问所指向内存空间中的内容。
数组是一组相关的内存位置,由连续的存储单元组成,他们都具有相同的名称和位置。
只有包含字符串结束符”/0”的数组才是字符串数组,字符数组则不能被函数当做字符串数组。
字符型数组可以存放字符串数组,字符串数组与一般的字符数组的区别是字符串数组包含字符串结束符”/0”,因此字符串一位数组的长度要比实际字符串的长度多1。
程序声明变量后,编译器就会为该变量分配相应的内存单元,即每个变量在内存会有固定的位置,有具体的地址和大小。

ANSI编码表示英文字符时用一个字节,表示中文用两个字节,而unicode不管表示英文字符还是中文都是用两个字节来表示。

分享到:
评论

相关推荐

    Java并发编程常识-梁飞.rar

    Java并发编程常识.ppt,阿里大牛梁飞编写,非常实用,欢迎大家想学习

    linux编程常识,关于linux的一些常见问题

    你应该为自己创造一个学习linux的环境--在电脑上装一个linux或unix

    少儿编程实习报告.docx

    经过五天的Java实训,感触很深,收获也很大,对自己的缺点也有了很多的认识,回首本学期JAVA学习,重点还是在学习概念等一些常识性的东西,关于类型、变量、接口、输入输出流、分析异常、抛出异常,后期主要是小...

    Linux系统编程教程

    二、服务器开发:需要学习Linux 程序设计和Linux 网络编程。 三、嵌入式Linux 应用程序:需要学习C 语言和基本的Linux 常识。 四、嵌入式Linux 驱动:除了需要学习“嵌入式Linux 应用程序”的知识以外,还需要了 ...

    1--[触电小常识].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    1--[触电小常识].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[触电小常识].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码1--[触电小常识].zip源码scratch2.0 3.0编程项目源文件源码案例...

    LED面板灯结构常识要点.doc编程资料

    LED面板灯结构常识要点.doc

    机器学习规则与工程的实践.rar

    介绍了一种机器学习样式,类似于 Google C++ 样式指南和其他常用的实用编程指南。如果 您学习过机器学习方面的课程,或者拥有机器学习模型的构建或开发经验,则具备阅读本文 档所必需的背景知识。 进行机器学习的...

    【推荐】最新超全的渗透测试学习基础教程集合(84份).zip

    14.Python攻防之基础常识、正则表达式、Web编程和套接字通信(一); 15.Python攻防之多线程、C段扫描和数据库编程(二); 16.Python攻防之弱口令、自定义字典生成及网站暴库防护; 17.Python攻防之构建Web目录扫描...

    代码随想录最新第三版-最强八股文

    这份PDF就是最强⼋股⽂! 1. C++ C++基础、C++ STL、C++泛型编程、C++11新特性、《Effective STL》 2. Java Java基础、Java内存模型、Java面向对象、Java集合体系...8. 编程常识 9. 问答精华 10.总结与经验分享 ......

    【三岁学编程系列】python基础知识(一)常识与输出

    三岁带你学python,最口语的学习,最简单的理解,逐步学习无压力,如有问题可以私聊或留言,感谢大家的支持与关注 文章目录python基础知识(一)python来由等必须知常识:python小笑话hello world!自定义字符保留...

    java基础学习总结笔记

    知识主要包括:Java基础常识、如何安装Java工具、Java语言的基础组成、Java面向对象、Java多线程、Java常用类、集合(重点)、IO流、GUI图形界面、网络编程、正则表达式、反射、注解、类加载器、动态代理等等,另外...

    python经典教材的中文翻译作品

    这是一个师弟翻译的国外经典python教材 对于完全没有编程经验的初学者,在学习python的时候,面对的不仅仅是python这门语言,还需要面临“编程”的一些普遍问题,比如:从零开始,不知道从何入手,找了本编程教材...

    基于知识图表示模型的常识推理python源码+数据+报告.zip

    基于知识图表示模型的常识推理python源码+数据+报告.zip 基于知识图表示模型的常识推理python源码+数据+报告.zip 基于知识图表示模型的常识推理python源码+数据+报告.zip 【资源介绍】 该项目是个人毕设项目,答辩...

    Python3完全零基础入门精讲 全套视频教程 下载地址.txt

    01-计算机基础常识.mp4 02-Python语言概览、安装与运行.mp4 03-Python 变量、数据类型及存储.mp4 04-Python 常用数据类型概览.mp4 05-数值与字符串.mp4 06-列表list.mp4 07-字典表dict 与元组 tuple.mp4 08-文件与...

    答你所问 .NET小常识 方便学习asp.net的朋友

     .Net全称.NET Framework是一个开发和运行环境, 该战略是微软的一项全新创意, 它将使得“互联网行业进入一个更先进的阶段”, .NET不是一种编程语言. 简单说就是一组类库框架, .NET开发支持C#、VB.NET、J#、...

    C++知识学习汇总,方便实用

    1:C++primer学习笔记 2:C++笔试题目大汇总 3:C++编码规范 4:c++沉思录 5:C++代码调试 6:C++命名规范 7:C++学习 8:C++语言常识

    微机原理与接口技术课程设计要求

    本课程设计的主要目的是进一步巩固学生所学的微机原理和接口技术理论知识,培养学生实际分析问题、编程和动手能力,最终使学生能把学到的知识应用到实际中去,学习和解决实际工作和生活中的问题,提高实践能力,包括...

    comp2121:AVR 编程ATMega2560。 COMP2121 实验室和微波仿真器项目

    注意:有一些未完成的代码未包含在项目中(backlight.asm、temp.asm 等) 免责声明:该代码可供任何学习 AVR 编程的人免费使用,但如果您打算将其用于大学作业,请使用常识并避免抄袭。项目算法为该项目开发的初始...

    如何学习ACM,看后受益匪浅

    而且C语言是大家接触的第一门编程语言,所以我们集训队都采用C和C++混编的方式写代码. 新来的同学可能C的基础知识刚刚学完,还没有接触过C++,其实在赛场上使用纯C的选手还是大有人在的,它们主要是看重了纯C在效率...

Global site tag (gtag.js) - Google Analytics