C语言动态分配内存知识

数组的长度必须事先指定,只能是常整数,不能是变量 传统形式定义的数组,该数组的内存程序员无法手动释放,只能在定义>该数组的函数使用完毕后,释放数组占用的内存。 数组的长度一旦定义,其长度就不能更改。 传统形式定义的数组不能跨函数使用。 动态内存分配可以很好的解决传统数...

2015-07-12 10:23:39

阅读数:500

评论数:0

补码相关知识学习

原码: 也叫符号-绝对值码 最高位0表示正,1表示负, 其余二进制是该数字的绝对值的二进制位 如十进制的负5二进制的原码为1101 原码的特点: 原码简单易懂 加减运算复杂 存在加减乘除四种运算,增加了CPU的...

2015-05-07 16:10:03

阅读数:439

评论数:0

利用结构体输入学生信息并按分数排序后输出

#include <stdio.h> #include <malloc.h> struct Student { int age; float score; char name[100]; }; int main(void) { struct ...

2015-05-06 20:09:08

阅读数:5809

评论数:0

通过函数完成对结构体变量的输入与输出

先看一个小程序:#include <stdio.h> #include <string.h> struct Student { int age; char name[100]; char sex; }; //声明输入输出函数 void InputSt...

2015-05-06 11:23:25

阅读数:2713

评论数:0

取出结构体变量中的每一个成员的两种方式

如何取出结构体中的每一个成员变量:#include <stdio.h> struct Student { int age; float score; char sex; }; int main(void) { struct Student st = {80, ...

2015-05-05 15:21:02

阅读数:4783

评论数:0

结构体变量的初始化和赋值

下面是一段结构体变量初始化和赋值的小程序:#include <stdio.h> struct Student { int age; float score; char sex; }; int main(void) { //定义并赋值称之为初始化 ...

2015-05-05 14:44:45

阅读数:1958

评论数:0

定义结构体的三种方式

定义结构体的三种方式: //定义结构体的第一种方式 struct Student { int age; float score; char sex; }; //定义结构体的第二种方式 struct Student { int age; float score; ...

2015-05-05 11:58:50

阅读数:2008

评论数:0

动态变量可以跨函数使用内存

由上节的知识我们直到静态变量是不可以跨函数使用内存的: 那么由malloc函数动分配分配内存的变量可以跨函数使用内存吗? 先来看一段小程序:#include <stdio.h> #include <malloc.h> void f(int ** q) { *q ...

2015-05-05 10:52:46

阅读数:902

评论数:0

静态变量不能跨函数使用内存

多级指针变量跨函数使用内存先看一个程序小例子:#include <stdio.h> void f(int ** q) { int i = 5; //q的值存放的是p的地址,即q = &p //所以*q就相当于p //所以*q = &i相当于p =...

2015-05-05 09:46:16

阅读数:819

评论数:0

C语言多级指针

先看一个小程序:#include <stdio.h> int main() { int i = 10; int * p = &i; int ** q = &p; int *** r = &q; //p指向了i变量,p中存储...

2015-05-04 11:51:20

阅读数:594

评论数:0

动态内存和静态内存的比较

动态内存和静态内存的比较: 静态内存是由系统自动分配,由系统自动释放。 静态内存是在栈分配的的。 动态内存是由程序员手动分配的,手动释放 动态内存是在堆分配的

2015-05-04 11:01:29

阅读数:531

评论数:0

不要过早的释放动态内存空间

先看一个程序:#include <stdio.h> #include <malloc.h> void f(int * q) { *q = 200; //free(q);//错误过早释放动态内存空间 } int main() { int * p = (int...

2015-05-03 11:36:31

阅读数:405

评论数:0

C语言sizeof函数和指针变量所占字节数

一个指针变量到底占几个字节?一些预备知识: 首先看一个c语言自带的函数sizeof: sizeof(数据类型) 功能:返回值就是该数据类型所占的字节数 例子: sizeof(int) = 4; sizeof(char) = 1; sizeof(double) = 8; 还可...

2015-05-02 12:09:48

阅读数:3941

评论数:0

数组与指针

#include <stdio.h> int main() { //a是数组名,5是数组元素的个数, //所有元素就是a[0]~a[4] int a[5]; //3行4列, //b[0][0]是第一个元素, //b[i][j]是第i+1行,第j+1列...

2015-05-01 13:23:28

阅读数:331

评论数:0

指针学习九

在被调函数函数中使用指针变量为形参的的值可以很容易的修改主调函数中变量的值,也可以达到拿到多个返回值的效果。看下面的例子:#include <stdio.h> void f(int * p, int * q) { *p = 1; *q = 2; } int main() {...

2015-05-01 12:06:38

阅读数:265

评论数:0

C语言指针学习八

实参与形参的不同#include <stdio.h> void swap(int * p, int * q) { int t; t = *p; *p = *q; *q = *t; } int main() { int a = 3; int b = 5...

2015-05-01 10:47:25

阅读数:418

评论数:0

C语言指针学习七

*号的用法: ①乘法 ②定义指针变量 int * p; 定义了一个名字叫p的变量,int *表示变量p只能存放整型变量的地址。 ③指针运算符 该运算符放在已经定义好的指针变量的前面: 如果p是一个已经定义好的指针变量,则*p表示以p的内容为地址的变量 ...

2015-05-01 09:23:51

阅读数:243

评论数:0

C语言指针学习六

C语言指针学习6下面通过交换两个数的值的例子比较,程序代码在最下面,加深对指针变量的理解  swap1函数 ①main主函数a的值3,b的值5传递到是swap1, swap1的局部变量p, q虽然在做值3和5 的交换, 可是一旦交换完毕,局部变量p和q所占用的内存空间会释放掉。②主函数main...

2015-04-30 17:41:27

阅读数:365

评论数:0

C语言指针变量学习五

//下面的程序演示了指针没有被人为手动分配存储空间的错误 #include int main() { int * p; int i = 5; *p = i; printf("*p=%d\n", *p); return 0; } 指针变量一开始没...

2015-04-30 14:57:48

阅读数:419

评论数:0

C语言指针变量学习四

地址:           内存单元的编号。           从零开始的非负整数。           范围:4G(0-4G-1) 指针:           指针就是地址,地址就是指针。           指针变量就是存放内存单元编号的变量。           指针的本质就是一个操作受限...

2015-04-30 14:39:05

阅读数:333

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭