摘要:
结构变量地址与成员地址 下列代码: struct student { char name[9]; /*姓名*/ int age; /*年龄*/ struct student *next; /*下一结点指针*/ }; main() { struct student stu,*pstu; int *pi 阅读全文
摘要:
动态内存分配 程序1 sizeof与结构 //36-1 sizeof与结构.c #include <stdio.h> #pragma pack(1) //字节对齐 struct student //定义结构类型 { char name[9]; char sex[3]; int age; }*pstu 阅读全文
摘要:
多维数组与指针 指向一维数组的指针,定义格式为: int *pa; int a[5]; pa=a; 指向三维数组的指针,定义格式为: int (*pa)[5][8] int a[3][5][8]; pa=a; 从定义格式中我们看出,指向多维数组的指针,只有将第一维变成指针,后面的格式保持不变才能进行 阅读全文
摘要:
结构与函数 程序1 结构变量与函数 // 34-1结构变量与函数.c #include <stdio.h> #include <string.h> struct Student { char name[9]; char sex[3]; int age; }; void fun(struct Stud 阅读全文
摘要:
传值与传址 父函数如果将变量的钥匙复制一份,再传给子函数,子函数就可以用钥匙开启这个变量,来进行操作。C语言中这种做法叫“传递指针”。 程序1 传址演示:设计一个函数,它可以交换任意两个变量的值。 // 33-1设计一个函数,它可以交换任意两个变量的值.cpp : 此文件包含 "main" 函数。程 阅读全文
摘要:
字符串的输入输出 printf和scanf 格式控制符为%s /*s为string的意思*/ 与字符型数据处理不同的是,用%s后面的变量一定是数组名或是字符指针 如: char *pc=”string!”; printf(“%s\n”,pc); 字符数组与指针 定义格式:区别 char *pc=”s 阅读全文
摘要:
数组的特殊情况 ※数组在定义时可以省略下标: int ai[]={1,2,3}; 编译器会自动算出此数组在初始化时有3个元素,自动定义成int ai[3]={1,2,3}; 这种方法经常用在字符串上: char str[]={“string”}; ※二维数组初始化时,只有第一维下标可以省略: int 阅读全文
摘要:
typedef自定义类型 格式: typedef 新类型名 如: typedef int INTEGER; typedef float REAL; 定义之后就可以用新的类型定义变量: INTEGER i; typedef还有更复杂的用法,比如用它去定义一个数组名,再用这个数组名去定义变量: type 阅读全文
摘要:
宏定义 格式: #define 标识符 字符串 如: #define PI 3.1415926 以后程序一看见PI,就自动会用3.1415926替代。 注意: ※宏命令只是简单地替换字符串,但是它不做合法性检查。比如将3.1415926写成3.14T5926,只会在使用了PI的语句上报错,而不会在# 阅读全文
摘要:
文件指针 定义: FILE *指针变量名; 如: FILE *fp1,*fp2; 一次定义了两个指向文件的指针 文件操作方式 ※文本方式 文本方式将数据以ASCII码方式存储在文件中,我们电脑中的“文本文件”就是典型的以文本方式存储的文件。 ※二进制方式 音乐、图形这类非文本数据,就比较适合使用二进 阅读全文