作业
来源:互联网 发布:外汇决策数据分析 编辑:程序博客网 时间:2024/05/16 17:57
在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:
typedef int INT;
typedef int ARRAY[10];
typedef (int*) pINT;
typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。
二、#define的用法
#define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代码维护问题,它的实例像:
#define INT int
#define TRUE 1
#define Add(a,b) ((a)+(b));
#define Loop_10 for (int i=0; i<10; i++)
typedef只是为了增加可读性而为标识符另起的新名称(仅仅只是个别名),而#define原本在C中是为了定义常量。
2.
3.char ch[10]={"yhping"};//字符串数组,用字符串常量进行初始化 不能改变大小或重分配 但可改变内容。在栈上申请空间,将常量内容复制进来,所以是局部变量。它等价于char ch[10]={'y','h','p','i','n','g','\0'};系统自动在后面加了一个'\0',作为字符串结束的标志,后3个元素为空字符。
char ch2[10]={'y','h','p','i','n','g'};//字符串数组,它是用单个字符作为字符数组的初值,char ch2[10]={'y','h','p','i','n','g'}开辟了10个空间,前6个元素为'y','h','p','i','n','g',后4个元素为空字符。
char *str = "yhping"; // 表示先定义一个字符串常量,并将其地址赋给str,str指向字符串常量,不能修改 。str指向该常量地址
strlen(ch)==6(返回字符串的大小)
strlen(str)==6(返回字符串的大小)
sizeof(ch)==10(数组的大小)
sizeof(str)==4(指针字节)
sizeof("yhping")==7(包含字符'\0'的字符串长度)
4.char ch[100];
char *str;
gets(ch);//输出小于数组长度内部的字符的值
gets(str);//str首先要分配空间,将指针p分配一组字符串内存地址,指针的作用是保存一个内存地址。将指针str分配一组字符串内存地址如下str = (char *)malloc(NUM*sizeof(char));
gets()函数:从流中读取字符串。
gets()函数用于从缓冲区中读取字符串,其原型如下:
char *gets(char *string);
gets()函数从流中读取字符串,直到出现换行符或读到文件尾为止,最后加上NULL作为字符串结束。所读取的字符串暂存在给定的参数string中。如果给数组空间放值大于数组长度时,系统会崩溃,所以考虑到程序安全性和健壮性,建议用fgets()来代替gets()。
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业~~~~~~~~~~~~~
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- 作业
- OPENCV数据结构体系和常用函数
- 深度对抗学习在图像分割和超分辨率中的应用
- 安卓开发框架(MVP+主流框架+基类+工具类)--- Retrofit+RxJava
- 一些需要思考的小故事
- linux驱动程序对应的app程序
- 作业
- 高级软件工程实验报告三
- 1.3线程的currentThread方法
- shell命令行之文件操作
- Linux随笔
- Git 简易指南
- mysql(1):软件安装+基础指令使用
- Python数据分析学习笔记(一)
- nodejs借用管道实现流数据边取边处理