C语言学习六概念

1、什么叫分配内存,什么叫释放内存
系统把某一块内存的使用权限分配给程序
操作系统把分配给该程序的内存空间的使用权利收回,改程序不能使用这一块内存空间这叫释放内存
附注:释放内存不是把该内存的内容清零

2、变量为什么必须初始化
不初始化,则变量通常是垃圾值


3、详细说明系统是如何执行int i = 5;这个语句的
1、vc++6.0请求操作系统为i分配内存空间
2、操作系统会在内存中寻找一块空闲的区域,把该区域当做i来使用
3、Vc++6.0会把i和这块空闲的区域关联起来,今后对字母i操作就是对这块空闲的区域操作
4、把数据5存储到字母i所关联的区域中
附注:所谓的内存区域就是内存的一块存储单元
4、详细的说出C语言所有的基本类型:
    int long int short int char float double


5、在printf函数中,int long int char double flaot 分别用什么输出
%d   %ld %c %lf %f
    %Xf 输出的是地址16进制



6、函数的优点
1、避免重复性操作
2、有利于程序模块化


7、谈谈对函数的理解
8、什么是指针,什么是地址,什么是指针变量,三者之间是什么关系?
地址是内存单元的编号(地址不是一块存储单元),指针就是地址,指针和地址是同一个概念
指针变量是存放内存单元编号的变量
指针变量和指针是两个完全不同的概念,只不过人们通常把指针变量简称为指针
9、请写出静态变量和动态变量的异同
相同:
都需要分配内存空间
不同:
静态变量时系统自动分配,自动释放的,程序员无法在程序运行的过程中手动分配,也无法在程序运行的过程中手动释放
静态变量是在栈中分配的,函数运行终止后,静态变量的存储空间才会被系统自动释放


动态内存是由程序员手动分配的,手动释放,程序员可以在程序运行的过程中手动分配,也可以在程序运行的过程中手动释放,
动态变量是在堆中分配的。程序员可以在程序执行的过程中的任何一个时刻手动释放动态变量的空间,不需要等到函数终止时才释放。
用free()函数
10、C语言学习的重点
1、流程控制
2、函数
3、指针
4、静态内存和动态内存
11、for(1;2;3)
A;
B;
2成立会执行A;
3执行完毕会执行2
A执行完毕会执行3
1总共执行1次

12、for(1;2;3)
for(4;5;6)
{
A;
B;
}
   C;
6执行完毕后会执行5
5成立会执行A;
5不成立会执行3
2不成立会执行C;
2成立会执行4
A和B是否一定会被执行   不一定
C是否一定会执行    一定


13、for(1;2;3)
{
while(4)
5;//此处属于while
6;
if(7)
8;//此处属于if
9;

}
10;

5执行完后会执行4;
如果8是break,则8执行完毕后会执行3;//break;终止的是最里层包裹他的那个循环
如果7不成立会执行9;
14、判断
int* p ; *p = 10;//错,因为p中是一个垃圾地址,不一定属于本程序的内存,相当于用10改变了一个我们不知道的内存中的值
char*p ;char ch = A; p = &ch;//错,单个字符必须用单引号括起来
int i,j;  i = j = 0; int * p ;p = &i;
int* p ; int**q; q = &p;
int* p;  int i = 5;  p = &i; *p = 10;

猜你喜欢

转载自blog.csdn.net/boy_of_god/article/details/80976608