C语言函数笔记配色方法 c语言加颜色

C语言笔记(五)----struct,enum,typedef等

成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。

创新互联建站-专业网站定制、快速模板网站建设、高性价比余庆网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式余庆网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖余庆地区。费用合理售后完善,十年实体公司更值得信赖。

对每个成员也必须做类型声明。

其形式为:

类型声明符 成员名;

例如:

注意, 最后括号外面的;分号是不可少的 。

结构定义之后,才可以进行变量声明。

凡声明为结构 stu 的变量都由上述4个成员组成。

由此可见,结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。

声明结构变量 有以下三种方法。

使用上面定义的stu为例:

如:

也可以用宏定义使一个符号常量来表示一个结构类型。例如:

例如:

这种形式的声明的一般形式为:

例如:

这种声明的一般形式为:

第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量。

在程序中使用结构变量时,往往不把她作为一个整体来使用。

在ANSI C中除了允许有相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括 赋值、输入、输出、运算 等都是通过结构变量的成员来实现的。

表示结构变量成员的一般形式为:

结构变量名.成员名

例如: boy1.num boy2.sex

如果成员本身又是一个结构,则必须逐级找到最低级的成员才能使用。如: boy1.birthday.month

结构变量的赋值就是给各成员赋值。

数组的元素也可以是结构类型的。

因此可以构成结构型数组。

初始化赋值:

当然也可以在定义 stu结构 时同时声明 pstu。

赋值是把结构变量的首地址赋予该指针变量,不能把结构名赋予该指针变量。

如果 boy 是被声明为 stu类型 的结构变量。

则:

有了结构指针变量,就能更方便地访问结构变量的各个成员。

其访问的一般形式为:

(*结构指针变量).成员名

结构指针变量-成员名

例如: (*pstu).num 或 pstu-num

例如:

介绍数组的时候,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变。

C语言中不允许动态数组类型。

例如:

但是又有此需求,为了解决这个问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间,也可把不再使用的空间回收待用,为有效地利用内存资源提供了手段。

常用的内存管理函数有3个:

例子:分配一块区域,输入一个学生数据

上面的例子采用了动态分配的办法为一个结构分配内存空间。

每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个节点。

有多少个学生就应该申请分配多少块内存空间,也就是说要建立多少个节点。

当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也就无法确定数组大小。

而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来。

用动态存储的方法可以很好地解决这些问题。

有一个学生就分配一个节点,无须预先确定学生的准确人数,某学生退学,可删去该节点,并释放该节点占用的存储空间,从而节约了宝贵的内存资源。

另一方面,用数组的方法必须占用一块连续的内存区域。

而使用动态分配时,每个节点之间可以是不连续的(节点内是连续的)。

节点之间的关系可以用指针实现。

即在节点结构中定义一个成员项来存放下一节点的首地址,这个用于存放地址的成员,常把他称为指针域。

可在第一个节点的指针域内 存入第二个节点的首地址,在第二个节点的指针域内 又存入第三个节点的首地址,如此串联下去直到最后一个节点。

最后一个节点因无后续节点连接,其指针域可赋值 0

这种连接方式,在数据结构中称为“链表”。

链表的基本操作主要有以下几种:

例子:建立一个三个节点的链表,存放学生数据。为简单起见,我们假定学生数据结构中只有学号和年龄两项。可编写一个建立链表的函数create。程序如下:

create函数 用于建立一个有 n个节点 的链表,他是一个指针函数,他返回的指针指向 stu结构。

在create函数内定义了三个 stu结构 的指针变量。

head为头指针,pf为指向两相邻节点的前一节点的指针变量。

pb为后一节点的指针变量。

枚举是一种 基本数据类型 ,而不是一种 构造类型 ,因为他不能再分解为任何基本类型。

enum 枚举名{ 枚举值表 };

例如: enum weekday { sun,mou,tue,wed,thu,fri,sat };

enum weeakday a,b,c;

或者为:

enum weekday { sun,mou,tue,wed,thu,fri,sat }a,b,c;

或者为:

enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

例子:

说明:

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

a=sun;b=mon; 是正确的

a=0;b=1; 是错误的。

如果一定要把数值赋予枚举变量,则必须使用强制类型转换。

如: a=(enum weekday)2;

还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

例子:

typedef定义的一般形式为:

typedef 原类型名 新类型名

其中原类型名中含有定义部分,新类型名一般用大写表示,一般用大写表示,以便于区别。

有时也可用 宏定义 来代替 typedef 功能,但是 宏定义 是由 预处理 完成的,而 typedef 则是 在编译时 完成的,后者更为灵活方便。

使用 typedef 定义数组、指针、结构等类型将带来很大的方便,不仅使书写简单而且使意义更加明确,因而增强了可读性。

例如:

又如:

C语言颜色控制函数textattr((WHITE

这个是文本模式下视频缓冲区的格式

彩色显示器 文本显示方式下视频缓冲区起始地址是 0xB8000000

一个字符在视频缓冲区里占两个字节

第一个字节 存的是 显示字符的ASCII码 ch

第二个字节 高四位 存的是 显示字符的背景色,低四位存的是 字符的颜色,就是前景色

((WHITE4)+BLUE_BLINK)就是将白色背景和蓝色前景合成为一个字节

C语言中,如何更改输出的文字中一部分的颜色?

可通过以下两种方法解决:

方法1. 用windows api. 如下代码输出123(高亮绿色前景白色背景)456(高亮黄色前景白色背景)在同一行。

#include stdio.h

#include windows.h

int main(){

HANDLE  hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY | BACKGROUND_INTENSITY| FOREGROUND_GREEN |BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);

printf("123");

SetConsoleTextAttribute(hConsole, FOREGROUND_INTENSITY| BACKGROUND_INTENSITY| FOREGROUND_RED | FOREGROUND_GREEN |

BACKGROUND_RED|BACKGROUND_GREEN|BACKGROUND_BLUE);

printf("456");

getchar();

return 0;

}

这里FOREGROUND_GREEN可以换成1-255的数字,表示不同配色。

方法2, 使用ansi颜色码。

两步:

I. 修改c:\windows\system32\CONFIG.NT文件,在最后添加一行:

device=%SystemRoot%\system32\ansi.sys

II. 然后c程序里用ansi颜色码,控制输出。 例如,输出一个绿色的123和一个黄色的456:

printf("\033[32m123\033[33m456\n");

学习c语言函数这一章的心得,和方法技巧。

我个人认为函数这部分的重点给你说下哦:

1.函数的返回值类型,也就是你函数return的内容的类型,注意如果有多种结束函数途径的话一定要有多个return,譬如说

int fun(int x)

{

if(x0)

return 0;

else

return 1;

}

2.函数形参的传递关系,有的可以改变值,有的不可以改变值,也是给你个例子:

void fun1(int x,int *y,int z)

{

x=1;

*y=1;

z=1;

}

如果主函数有变量int a=b=c=2;fun(a,b,c);的话,那么b和c的值会改变,而a的值不会改变,那是因为:

a并不对变量a所占用内存空间的内容进行操作。

b是把b变量的内存空间地址传递进去了,fun函数直接对b变量所在内存空间进行操作,所以b会改变。

至于c,你暂时不用知道,因为形参int c表示的是一个引用,是c++里面会涉及的,你现在用c所以暂时只要知道有这么种方法就可以了。

3.就是注意函数中变量的存活期,这个说起来有点麻烦,你看下书上关于局部变量和全局变量那部分的内容吧,那个说的比较详细。

c语言颜色函数color怎么使用

函数名: textbackground

功 能: 选择新的文本背景颜色

用 法: void textbackground(int color);

程序例:

#include conio.h

int main(void)

{

int i, j;

clrscr();

for (i=0; i9; i++)

{

for (j=0; j80; j++)

cprintf("C");

cprintf("\r\n");

textcolor(i+1);

textbackground(i);

}

return 0;

}

函数名: textcolor

功 能: 在文本模式中选择新的字符颜色

用 法: void textcolor(int color);

程序例:

#include conio.h

int main(void)

{

int i;

for (i=0; i15; i++)

{

textcolor(i);

cprintf("Foreground Color\r\n");

}

return 0;

c语言,color函数定义在哪个头文件

#include windows.h

你说的是控制台(黑框)吧,包括背景和字体颜色,包含这个头文件,然后让使用方法是加到你的代码里,一般放在开始的地方,例:

int main()

{

system("color 3C");   //我给的图中的颜色组合

return 0;

}

实际上调用的windows的cmd里面的color命令,在cmd(开始-运行-cmd)输入help color就可以列出所有的组合,附一张图,颜色可以自己组合,比如我就喜欢黑底绿字。


新闻标题:C语言函数笔记配色方法 c语言加颜色
URL网址:http://bzwzjz.com/article/hgjcij.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都网站建设 成都网站设计 盐亭网站设计 成都网站设计 定制级高端网站建设 营销网站建设 手机网站制作 网站建设公司 成都定制网站建设 网站设计 移动网站建设 成都网站建设 成都网站设计 成都企业网站建设公司 成都网站制作 移动手机网站制作 泸州网站建设 成都网站建设 网站建设改版 重庆企业网站建设 成都网站建设推广 外贸营销网站建设