9.4一些问题
1、共用体 union
可以存储不同的数据类型,但只能同时存储其中的一种类型。
共用体每次只能存储一个值。
共用体的长度是其最大的成员的长度。
2、枚举
enum创建符号常量,
enum spectrum {red ,yellow,blue=8,white};//0,1,8,9 枚举量默认从0开始,后面比前面的大1。
spectrum band;//声明变量
band=yellow;//只能将定义枚举的时候的枚举量赋值给这种枚举的变量。
3、const 、#define、enum
#define N 1000;
const int N=1000;
4、const
指针常量:
数据类型 *const 指针变量=变量名,如:NSString* const p="abc"; const修饰的是指针变量,而不是指针的值,所以指针指向的值是可以修改的。
常指针:
const 数据类型 *指针变量=变量名,如 const char* a = @"jack"; 或者是,数据类型 const *指针变量=变量名,如 char* b = @"rose". 这是指针指向的值就是不可以改变的。
还有一种情况就是指针变量本身不可以修改,指针指向的值也是不允许修改的,就是指针常量和常指针组合,这种称为
常指针常量:
const 数据类型 *const 指针变量=变量名, 如const NSString* const c = @"jane"; 或数据类型 const *const 指针变量=变量名, 如NSString* const * const d = @"kangkang"
5、new delete
int *pt=new int;
delete pt; delete pr[];//释放数组的内存。
6、malloc
char*a=NULL;//声明一个指向a的char*类型的指针
a=(char*)malloc(100*sizeof(char));//使用malloc分配内存的首地址,然后赋值给a
7、typedef
typedef existing_type new_type_name ; typedef struct tagNode *pNode; struct tagNode{ char *pItem; pNode pNext; };
8、异常
9、return、exit
exit(0):正常运行程序并退出程序;
exit(1):非正常运行导致退出程序;
return():返回函数,若在主函数中,则会退出函数并返回一值。
详细说:
1. return返回函数值,是关键字; exit 是一个函数。
2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。
3. return是函数的退出(返回);exit是进程的退出。
4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的)。
5. return用于结束一个函数的执行,将函数的执行信息传出个其他调用函数使用;exit函数是退出应用程序,删除进程使用的内存空间,并将应用程序的一个状态返回给OS,这个状态标识了应用程序的一些运行信息,这个信息和机器和操作系统有关,一般是 0 为正常退出,非0 为非正常退出。
6. 非主函数中调用return和exit效果很明显,但是在main函数中调用return和exit的现象就很模糊,多数情况下现象都是一致的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码