指针、结构体、枚举类和文件
指针
//指针变量中只能存放地址(指针)
int *pointer = 100; //是不合法的,int *p=后面必须是地址变量
int a=10;
int *p = &a;
*p = 1;//表示将整数 1 赋给 p 指针当前指向的变量,相当于把1赋给 a,即a = 1
printf("%d",*p);// 1
printf("%d",p);// a的地址//数组指针
int a[10] = {0,1,2,3,4,5,6,7,8,9};
int *p; p = &a[0]; //等价于下面
p = a;//等价于上面
- 动态分配数组
- 易错
C 语言不支持在调用函数时返回局部变量的地址,除非定义局部变量为 static 变量
/* 要生成和返回随机数的函数 */
int * getRandom( )
{static int r[10];int i;/* 设置种子 */srand( (unsigned)time( NULL ) );for ( i = 0; i < 10; ++i){r[i] = rand();printf("%d\n", r[i] );}return r;
}
strcpy(s1, s2);复制字符串 s2 到字符串 s1。strcat(s1, s2);连接字符串 s2 到字符串 s1 的末尾。strlen(s1);返回字符串 s1 的长度。strcmp(s1, s2);如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回小于 0;如果 s1>s2 则返回大于 0。strchr(s1, ch);返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。strstr(s1, s2);返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。
结构体
struct Stu{char *name; //姓名int num; //学号
};
struct Stu stu1typedef struct Stu{char *name; //姓名int num; //学号
}S;
S stu1;
枚举类
enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };
enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };scanf("%d", &day);
switch(day){case Mon: puts("Monday"); break;case Tues: puts("Tuesday"); break;case Wed: puts("Wednesday"); break;case Thurs: puts("Thursday"); break;case Fri: puts("Friday"); break;case Sat: puts("Saturday"); break;case Sun: puts("Sunday"); break;default: puts("Error!");
}输入:
4
输出:
Thursday
文件读写
FILE *fpw = NULL;
fpw = fopen("/hello.txt","w+");
fprintf(fpw, "This is testing for fprintf...\n");
fputs("This is testing for fputs...\n", fpw);
fclose(fpw);FILE *fpr = NULL;
char buff[255];fpr = fopen("/hello.txt", "r");
fscanf(fpr, "%s", buff);
printf("1: %s\n", buff );fgets(buff, 255, (FILE*)fpr);
printf("2: %s\n", buff );fclose(fpr);
return 0;
指针、结构体、枚举类和文件相关推荐
- Swift 中枚举、结构体、类(enum、struct、class)
Swift 中枚举.结构体.类(enum.struct.class) Swift中的枚举与OC相比不会自动分配初始值,值的类型不会限定为整数,可以给定关联值类型和具体值(整型.浮点型.字符型(Swif ...
- Swift结构体与类
在面向过程的编程语言(如C语言)中,结构体用得比较多,但是面向对象之后,如在C++和Objective-C中,结构体已经很少使用了.这是因为结构体能够做的事情,类完全可以取而代之. 而Swift语言却 ...
- swift string转int_swift中结构体和类的区别(值类型和引用类型的区别)
在swift中结构体和类有着更多的相同之处,在一般的使用中能够做到互相替换.我们可以先看看官方文档的描述: Unlike other programming languages, Swift does ...
- Swift学习笔记 (十八) 结构体和类
结构体和类作为一种通用而又灵活的结构,成为了人们构建代码的基础.你可以使用定义常量.变量和函数的语法,为你的结构 体和类定义属性.添加方法. 与其他编程语⾔所不同的是,Swift 并不要求你为自定 ...
- [C#]结构体和类的区别
结构体和类的区别: 在做一个项目时,使用了较多的结构体,并且存在一些结构体的嵌套,即某结构体成员集合包含另一个结构体等,总是出现一些奇怪的错误,才终于下决心好好分析一下到底类和结构体有啥不同, ...
- swift学习笔记(9)-结构体和类
结构体和类对比 Swift 中类和结构体有很多共同点.共同处在于: * 定义属性用于存储值 * 定义方法用于提供功能 * 定义下标操作使得可以通过下标语法来访问实例所包含的值 * 定义构造器用于生成初 ...
- 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )
文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...
- 结构体、类的成员对齐
自然对齐 为了保证CPU的运算稳定和效率,要求基本数据类型在内存中的存储地址必须自然对齐.所谓自然对齐,就是基本数据类型的变量不能简单的存储于内存中的任意地址处,它们的起始地址必须能够被它们的大小整除 ...
- 详解结构体、类等内存字节对齐
先说个题外话:早些年我学C程序设计时,写过一段解释硬盘MBR分区表的代码,对着磁盘编辑器怎么看,怎么对,可一执行,结果就错了.当时调试也不太会,又根本没听过结构体对齐这一说,所以,问题解决不了,好几天 ...
- 结构体和类的区别-Objective-C基础
1 结构体 与类的相同点 都可以将多个数据封装为1个整体 struct Date{ int year; int month; int day; } @interface Date :NSObject ...
最新文章
- 方法总比困难多_只是为了生活
- Python 数据类型之字典
- JMS : Java Message Service (Java消息服务)之一 [转]
- scss-@for 指令
- Atmospheric Scattering
- 【如意影视】运营级+完整类库+解析线路+无限增加或删减解析接口+如意可视化播放器1.1
- 自适应灰色动态滚动网站404页面源码
- 生成token和获取token
- Log4j具体使用实例
- 多核Cache一致性 伪共享 atomic的实现和cache相关的部分
- 吾在这里给大家拜年啦!
- 研究svg编辑器过程中遇到的问题总结
- RadAsm模板修改
- NWR,Gossip,Paxos分布式一致性协议
- web调用钉钉待办审批
- 力扣刷题 DAY_63 回溯
- 浅谈扫描二维码登录微信网页版与摇一摇传图的实现原理
- vscode添加标签自动补全
- Web3D 从入门到跑路 · 3D 初体验
- 有一种超人叫职场女性