08 2020 档案
摘要:例题1.数组名和结构名有什么区别? 结构是一个标量。和其它任何标量一样,当结构名在表达式中作为右值使用时,它表示存储在结构中的值。当它作为左值使用时,它表示结构体存储的内存位置。数组名在表达式中作为右值使用时,它的值是一个指向数组第一个元素的指针。由于它的值是一个常量指针,所以数组名不能作为左值使用
        阅读全文
                
摘要:10.1 结构体类型与结构体变量 10.1.1 结构体类型的定义 在C语言中,结构体类型即是一种构造而成的数据类型。那么在声明和引用之前必须先定义再使用。 结构体类型的定义格式一般为: struct 结构体名 { 成员列表; }; 其中,struct是关键字,结构体名是用户指定的结构体类型名称,每一
        阅读全文
                
摘要:预处理命令是指C语言设置的像#include这样的在源程序编译之前必须进行处理的命令。C语言的预处理命令均以 # 打头,末尾不加分号,以区别于C语句。 9.1 宏定义 宏定义就是用一串字符代替名字,这串字符既可以是常数也可以是任何字符串,甚至是可以带参数的宏。例如: #define PI 3.141
        阅读全文
                
摘要:例题1.函数fun的功能是交换x 和y 中的值,且通过正确调用返回交换结果 func (int *x,int *y) { int temp; temp=*x; *x=*y; *y=temp;} fund (int *x,int *y) { *x=*x+*y; *y=*x-*y; *x=*x-*y; 
        阅读全文
                
摘要:1.数组名是什么 数组名是一个标识符,它标识出我们之前申请的一连串内存空间,而且这个空间内的元素类型是相同的——即数组名代表的是一个内存块及这个内存块中的元素类型 数组名的值是数组首元素的指针常量。 数组名不是指针,但大多数使用到数组名的地方,编译器都会把数组名隐式转换成一个指向数组首元素的指针来处
        阅读全文
                
摘要:5.1 字符串基础 字符串是以ASCII字符NUL结尾的字符序列。ASCII字符NUL表示为 \0 。字符串通常存储在数组或从堆上分配的内存。 字符串的长度是字符串中除了NUL字符之外的字符数。为字符串分配内存时,要记得为所有的字符再加上NUL字符分配足够的空间。 注意:NULL和NUL不同。NUL
        阅读全文
                
摘要:4.指针和数组 一种常见的错误观点是“数组和指针是完全可以互换的”。尽管数组名字有时候可以当作指针来用,但数组的名字不是指针。数组表示法也可以和指针一起使用,但两者明显不同,也不一定能互换。尽管数组使用自身的名字可以返回数组地址,但名字本身不能作为赋值操作的目标。 4.1.1 一维数组 一维数组是线
        阅读全文
                
摘要:局部变量也称为自动变量,他总是分配在栈帧上。 3.1 程序的堆和栈 3.1.1 程序栈 程序栈是支持函数执行的内存区域,通常和堆共享。也就是说,程序栈和堆共享同一块内存区域。程序栈通常占据这块区域的下部,而堆用的则是上部。 程序栈存放栈帧(stack frame),栈帧有时也称为活跃记录或活跃帧。栈
        阅读全文
                
摘要:2.1 动态内存分配 malloc函数的参数指定要分配的字节数。如果成功,它会返回从堆上分配的内存的指针。如果失败则会返回空指针。 sizeof操作符使应用程序更容易移植,还能确定在宿主系统中应该分配的正确字节数。 在释放用struct关键字创建的结构体时也可能发生内存泄漏。如果结构体包含指向动态内
        阅读全文
                
摘要:1.1.1 指针概述 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 指针的类型:从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。 1) int *ptr; //指针的类型是int * 2) char *ptr; //
        阅读全文
                
摘要:1.此程序运行结果:0 1 2 3 4 5 递归调用 #include<stdio.h> #include<stdlib.h> fun(int k) { if (k > 0) fun(k - 1); printf(" %d",k); } void main() { int w = 5; fun(w)
        阅读全文
                
摘要:7.1 函数的概念 1.从函数定义的角度分类 1)库函数 库函数(标准函数)是由C语言编译系统提供的,用户不必自己定义而直接使用它们,只需要在程序前包含有该函数原型的头文件即可在程序中直接调用。 2)定义函数 由用户按需要写的函数。对于用户自定义的函数,不仅要在程序中定义函数,而且在主调函数中必要时
        阅读全文
                
摘要:例题1.求矩阵的马鞍点。马鞍点即矩阵元素所在行的最大值,以及所在列的最小值。 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<time.h> #define M 100 #define N 1
        阅读全文
                
摘要:6.1 一维数组 6.1.1 一维数组的定义 一维数组定义的一般形式: 类型说明符 数组名[常量表达式]; 说明: 1)类型说明符为类型描述符,常用的有int ,float,char等。 2)数组名的命名规则和变量名相同,遵循标识符命名规则。 3)常量表达式是数组的个数,可以是常量、符号常量、常量表
        阅读全文
                
摘要:例题1.输出以下图形。 * * * * * * * * * * * * * * * * * * * * * * * * * #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void main() { int i
        阅读全文
                
摘要:5.1 while语句 while语句实现的循环称为当型循环。 1.语法 while(表达式) 语句 2.功能 计算表达式的值,当值为真(非0)时,执行循环体语句。 3.说明 1)表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号()括起来。 2)语句称为循环体,可以是单个
        阅读全文
                
摘要:typedef 允许你为各种数据类型定义新的名字。 typedef char *pchar 这个声明把标识符pchar作为指向字符的指针类型的新名字。 pchar a;声明a是一个指向字符的指针。 注意:应该使用typedef而不是#define来创建新的类型名。因为后者无法处理指针类型。 例如:#
        阅读全文
                
摘要:在变量说明中,不允许连续给多个变量赋初值。int a = b = c = 5;错误。必须改写为int a = 5,b = 5,c = 5。 getchar 函数 getchar 函数是字符输入函数。它的作用是从标准输入设备(一般为键盘)读取一个字符(包括空格、回车和Tab),该字符显示到屏幕上。其一
        阅读全文
                
摘要:标识符 概念:在程序中用来标识变量名、符号常量名、函数名、类型名、文件名等有效字符序列。 1)标识符只能由字母(A - Z,a - z)、数字(0 - 9)和下划线( _ )三种字符组成,且首个字符必须为字母或下划线。 2)在C语言中,大小写字母不等效。Sum和sum,i和I分别是两个不同的标识符。
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号