7、关于内存地址 内存空间的访问方式:通过变量名访问,通过地址访问; 地址运算符:& 如:int var; 则&var表示变量var的内存起始地址; //& 出现在声明语句中出现时引用,别名而已,在运算表达式中出现&,说明是取内存地址。 7.1 指针变量的概念 指针:内存地址,用于间接访问内存单元 ...
分类:
编程语言 时间:
2019-01-08 15:38:33
阅读次数:
250
char* a = "hello"; 和 char a[] = "hello"; 的区别: 1、 char* a = "hello"; 中的a是指向第一个字符h的的指针变量。 第2行说明a所指向的字符串是在静态存储区的,无法修改。 所以可以在静态存储区的变量前加const来防止对其修改,在编译时就可 ...
分类:
其他好文 时间:
2019-01-07 22:47:29
阅读次数:
229
野指针就是指向无效地址的指针。 一般有三种情况导致野指针问题: 1 引用未初始化的指针变量 # include <stdio.h> int main(void) { int i = 3; int *j; *j = i; //指针j还未初始化,即指针j指向0XCCCCCCCC内存空间,该地址应用程序无 ...
分类:
其他好文 时间:
2019-01-07 17:41:28
阅读次数:
153
fputs() 函数也是用来显示字符串的,它的原型是: s代表要输出的字符串的首地址,可以是字符数组名或字符指针变量名。 stream 表示向何种流中输出,可以是标准输出流 stdout,也可以是文件流。标准输出流即屏幕输出,printf 其实也是向标准输出流中输出的。 fputs() 和 puts ...
分类:
其他好文 时间:
2019-01-04 12:24:32
阅读次数:
243
恢复内容开始 一、研究数组排序的意义: 数据结构中,排序算法各有用处,不同的排序方法有不同的时间复杂度与空间复杂度。为了能够依据不同情况,选用不同的排序方法解决不同的问题。 二、常见的数组排序方法: 以下研究,默认是对操作数组进行从小到大的排序。使用语言是Java。 1.选择排序法 选择排序法是将需 ...
分类:
编程语言 时间:
2018-12-28 20:38:58
阅读次数:
228
1、指针数组 int *p[4] 每个元素都要存放一个地址 2、指针变量 in(*p)[4] 指针变量p指向包含4个整型元素的一维数组,可存4个地址 3、比较字符串的大小 4、写一函数,求一个字符串的长度,要求函数形参用指针变量,在main函数中输入字符串,并输出其长度 输入China,运行结果为0 ...
分类:
编程语言 时间:
2018-12-27 03:06:50
阅读次数:
191
1、typedef的最简单使用 1 typedef long byte_4; 1 typedef long byte_4; 1 typedef long byte_4; typedef long byte_4; 给已知数据类型long起个新名字,叫byte_4。 2、 typedef与结构结合使用 ...
分类:
其他好文 时间:
2018-12-23 20:46:50
阅读次数:
162
记住指针和它所指向的东西是完全不同的。局部变量在函数返回时就会释放, 但是在指针变量这个问题上, 这表示指针被释放, 而不是它所指向的对象。用 malloc() 分配的内存直到明确释放它之前都会保留在那里。一般地, 对于每一个 malloc() 都必须有个对应的free()调用。 原文地址: htt ...
分类:
其他好文 时间:
2018-12-20 17:00:11
阅读次数:
158
一个简单结点的结构体表示为: struct note { int data; /*数据成员可以是多个不同类型的数据*/ struct note *next; /*指针变量成员只能是-个*/ }; 一个简单的单向链表的图示 1.链表是结构、指针相结合的-种应用,它是由头、中间、尾多个链环组成的单方向可 ...
分类:
编程语言 时间:
2018-12-19 13:10:25
阅读次数:
217
利用指针交换数字 无运行结果错因分析:*p1就是a,*p2就是b,都是整型变量,而*t是指针变量t所指向的变量,但上面并没有给t赋值,所以*t是未知的。 改正方法: 或者 利用指针输出整型数组 运行结果不正确 错因分析:因为p最初指向a[0],在输入数组值后,p已经指向a数组的末尾,因此在第二个fo ...
分类:
其他好文 时间:
2018-12-13 01:11:53
阅读次数:
178