- 博客(19)
- 收藏
- 关注
原创 C语言的动态内存分配
分配函数 介绍 1、malloc 函数原型:(void*)malloc(unsigned size); (字节数) malloc函数在内存中开辟的是一块连续的空间,size是所需要空间的长度,开辟的大小为size* 参数类型,开辟完之后返回这块空间的首地址。 2、calloc 函数原型:void* calloc(size_t numElements, size_t sizeOfEleme...
2019-04-23 13:02:53 132
原创 c++的动态内存分配
c虽然也提供了动态内存分配的相关函数,但与c++还是有很大的不同。这里先介绍c++的内存分配,再与c的进行对比。 c++使用new来进行内存申请,new运算符是基于类型进行内存分配的,即程序员要告诉new,要为哪种数据类型分配内存,数据类型可以是基本数据类型,也可以是自己定义的结构或者是类。返回一个指向已分配内存块的指针,我们要做的就是把这个内存块的地址赋给一个对应类型的指针。 typeNa...
2019-04-22 01:17:20 349
原创 内存模型
1、单独编译,c++程序可以被拆分成多个块放在多个文件中,例如将结构声明,成员函数声明放在头文件中,再把与结构操作的代码放在一个源文件中,再把需要调用结构和结构函数的代码放在另一个文件中,最后编译时仅需用 #include 包含对应的头文件即可。即使使用结构的函数代码需要修改,重新编译时对于定义结构的代码不需要重新编译,仅需和其编译版本进行链接即可。 需要注意的是,如果结构被重复声明会报错,因此头...
2019-04-22 00:41:06 108
原创 C++的函数
1、函数中的指针概念 函数名代表的就是函数的入口指针。指针实际上就是一个内存地址。不同的系统表示地址的长度不一样。 数组与指针:数组名是一个指向数组首元素的指针 处理数组的函数,讲数组名作为参数传递(即传递数组首元素指针)通常的,处理数组的函数还必须传递一个参数用于规定处理的数组长度。此时可以通过传递数组末元素的地址或传递数组长度来解决。 详细探...
2019-02-05 20:35:27 376
原创 Chapter 7
【逻辑运算符】或,与,非,运算符优先级详见:p192 【循环辅助语句】 continue:仅影响该语句所处的循环,作用是跳过该语句后所有的循环迭代,并开始下一次迭代。(理解为直接跳到循环判断的部分) break:仅影响该语句所处的循环,作用是跳过该语句后的所有循环语句,并结束循环。(理解为直接结束循环) 【条件运算符?:】作为表达if else语句的一种简便方式 x = (y <...
2018-08-21 13:23:35 105
原创 Chapter 11(2)
字符串函数 下面介绍的字符串的函数原型包含于string.h中,使用时应事先包含该头文件。 strlen():统计字符串的长度。长度不包括末尾的空字符。但是在声明字符数组的时候,数组长度应比字符数多1以容纳末尾的空字符。与sizeof不同,sizeof返回的是整个数组的长度,即会多出一位末尾的空字符。 strcat():接受两个字符串作为参数,将第二个字符串拼接到第一个字符串后,作为一个新字...
2018-08-21 13:23:08 116
原创 Chapter 11(1)
字符串的输入输出 首先回顾:字符串实际上是一个以\0结尾的字符数组,也就是指针表示法是可以用在字符串上的,包括字符串常量(这个时候指针指向的是字符串的首字符)如:const char *head =“i love you” 同样的,你也可以使用传统方式声明一个字符串 :char head[] ="" 不同的是,数组名是一个常量,而指针是一个变量(这里用const修饰避免意外修改了指针的指...
2018-08-21 13:23:04 140
原创 Chapter 10
数组与指针 数组的声明规则: int a[] ={元素1,元素2.......},或int a[数组长度]。前者会根据数组中元素个数自动分配数组大小。后者只规定了数组大小。数组声明后需对数组进行初始化,即对数组中元素赋值,若无赋值,储存的则是无意义的数据。现在的c标准支持指定初始化器可指定初始化数组的某个元素。若数组有一个元素被初始化,其他未指定数值的元素会被初始化为0。编译器也可以通过指定初始...
2018-08-21 13:22:59 202
原创 Chapter 9
更加深入地认识函数 1、定义并使用一个函数的基本步骤:在声明区声明一个函数,包括函数名,返回类型,传递参数的类型、个数。之后再写函数原型。最后在需要的地方调用即可。c中每个函数都可以调用其他函数(调用自身即是实现了递归) 2、函数的参数,在调用函数时,填入括号内的是实际参数,这个实际参数的值被传递到函数内部的形式变量,形式变量包含的参数是形式参数,函数进行运算时,改变的是形式变量的值,没有其他...
2018-08-21 13:22:54 114
原创 Chapter 8
单字符IO:getchar()、putchar(),一次从缓冲区返回一个字符。 输入输出流的概念:键盘或者文件输入都视为输入流,输出到文件或屏幕都视为输出流。因此键盘输入和屏幕输出一样可以视为一个文件操作。 文件结尾:在stdio的头文件中定义了一个文件结尾标志【EOF】实际上EOF是一个特殊的值,标志文件结尾。不同操作系统标记结尾的方式不同,可以是嵌入的ctrl+z(任意位置或某一行的开头,...
2018-08-21 13:22:50 221
原创 简易交互程序2
// 杂货店订购程序.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <string.h> #define Length strlen("洋蓟 ¥2.05/500g") ////////////////////////////////////...
2018-08-21 13:22:45 162
原创 简易的交互程序(带输入验证)
// ConsoleApplication2.cpp: 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include<string.h> #include<stdlib.h> char ch; #define A "Enter the number corresponding to th...
2018-08-21 13:22:39 239
原创 Chapter 6
【while循环】入口条件循环,值为真时进入循环。 while(expression) statement 【do while】出口条件循环,不管条件如何,至少执行循环一次。 do statement while(expression);(注意以分号结尾) 【for循环】最灵活的循环,括号中的三个表达式可以是任意的,也可以省略,但要保留分号。在保证循环满足要求的情况下任意改动。 ...
2018-08-21 13:22:33 108
原创 有关清空缓冲区
#include "stdafx.h" #include <stdio.h> int main() { const int time = 60; int min; while (1) { printf("please enter an value of minuits\n"); if (scanf_s("%d", &min) == 0) { pri...
2018-08-21 13:22:26 256
原创 Chapter 5
【基本运算符】基本运算符表及其优先级:详见p111 其他运算符:sizeof,以字节单位返回运算对象的大小,其返回值类型为size_t,转换说明为%zd 求模运算符%,只能用于整数 递增递减运算符 ++ --:注意位置的不同,其效果也不同,如i++ 表示=先调用一次变量i,再递增它。 而i++表示县递增...
2018-08-21 13:22:14 122
原创 Chapter 4
【字符串】双引号可以告诉编译器这是一个字符串,c没有专门的字符串变量类型,它使用char数组储存,每个单元储存一个字符(一字节),用空字符【\0】标识字符串的结尾。因此,一个40长度的字符数组最多储存39个字符。对应转换说明【%s】。 创建字符串或给字符串赋值时,计算机会自己在字符串结尾添加\0 另:声明数组:type name[length] 数组名称对应数组首元素的地址 而变量的地址要用&...
2018-08-21 13:21:48 131
原创 Chapter 2
c程序组成: 预处理指令 main()函数+语句 其他函数+语句 ........... c共有6种语句:标号语句、复合语句、表达式语句、选择语句、迭代语句、跳转语句 main()作为一种标准,其返回值最好为int,即int main() 使用前先声明变量或函数,有利于规划程序 变量名或函数名只能以下划线或字母开头,最好以字母开头,因为操作系统与库文件会使用以一到两个下划线开始的标...
2018-08-21 13:20:31 100
原创 Chapter 3
基本数据类型:int、float、double、char 前缀:short、long、signed、unsigned short int简写为short,long int简写为long,数值大的时候还可以用long long类型 【十六进制与八进制】十六进制前缀:0x 八进制前缀 0 十六进制数可以很方便的用二进制来转化:十六进制数每一位对应一个四位的二进制数:0x5=0101,0x3=...
2018-08-21 13:20:16 170
原创 Chapter 1
编程机制: 编写源代码.c-->编译器-->目标代码.obj-->链接器(将启动代码可库代码与目标代码链接)-->可执行代码 复习题 1、同样的代码不经修改或进行少量修改就可以在不同操作系统上运行 2、源代码文件是程序员编写的代码,目标代码文件是编译器将源代码文件编译后生成的,可执行文件是目标代码文件与库文件及启动代码链接形成的可直接运行的文件。 3、定义程序目标...
2018-08-21 13:19:59 152 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人