成都网站建设设计

将想法与焦点和您一起共享

C语言技术体系自学笔记(三)-创新互联

1.3 sizeof关键词

sizeof不是函数,所以不需要包含任何头文件,它的功能是计算一个数据类型的大小,单位是字节

创新互联公司2013年至今,先为盐城等服务建站,盐城等地企业,进行企业商务咨询服务。为盐城企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

sizeof的返回值是size_t

size_t类型在32位操作系统下是unsigned int,是一个无符号的整数

int a=1;
int b=sizeof(a);//得到指定值占用内存的大小   单位:字节
printf("b=%d\n",b);
size_t c = sizeof(a);
printf("c = %u\n", c);//用无符号数的方式输出c的值
1.4 字符型:char

1.4.1 字符变量的定义和输出

字符型变量用于存储一个单一的字符,c语言中用char表示,其中每个字符变量都会占用1个字节空间,在给变量赋值的时候有四种方式:用字符影像赋值,用十进制ASCII赋值,用八进制ASCII赋值,用十六进制ASCII赋值

char ch1 = 'A'; //字符影像赋值
char ch2 = 65; //十进制赋值
char ch3 = '\101'; //八进制赋值
char ch4 = '\x41'; //十六进制赋值
printf("%c %c %c %c\n", ch1, ch2, ch3, ch4);// A A A A

字符变量实际上并不是把该字符本身放到变量的内存单元中去,而是将该字符对应的 ASCII 编码放到变量的存储单元中。

char的本质就是一个1字节大小的整型。

char ch = 'a';
	printf("sizeof(ch) = %u\n", sizeof(ch));

	printf("ch[%%c] = %c\n", ch); //打印字符
	printf("ch[%%d] = %d\n", ch); //打印‘a’ ASCII的值

	char A = 'A';
	char a = 'a';
	printf("a = %d\n", a);		//97
	printf("A = %d\n", A);	//65

	printf("A = %c\n", 'a' - 32); //小写a转大写A
	printf("a = %c\n", 'A' + 32); //大写A转小写a

	ch = ' ';
	printf("空字符:%d\n", ch); //空字符ASCII的值为32
	printf("A = %c\n", 'a' - ' '); //小写a转大写A
	printf("a = %c\n", 'A' + ' '); //大写A转小写a

1.4.2 字符变量的输入

char ch;
printf("请输入ch的值");
scanf("%c",&ch);//格式化输入,检测到\n停止读取
printf("ch=%c",ch);

1.4.3 转义字符

转义字符含义ASCII**码值(十进制)**
\a警报007
\b退格(BS) ,将当前位置移到前一列008
\f换页(FF),将当前位置移到下页开头012
换行(LF) ,将当前位置移到下一行开头010
\r回车(CR) ,将当前位置移到本行开头013
\t水平制表(HT) (跳到下一个TAB位置)009
\v垂直制表(VT)011
\ \代表一个反斜线字符""092
\'代表一个单引号(撇号)字符039
\"代表一个双引号字符034
\?代表一个问号063
\0数字0000
\ddd8进制转义字符,d范围0~73位8进制
\xhh16进制转义字符,h范围0~9,a~f,A~F3位16进制
printf("abc");
printf("\refg\n"); //\r切换到句首, \n为换行键

printf("abc");
printf("\befg\n");//\b为退格键, \n为换行键

printf("%d\n", '\123');// '\123'为8进制转义字符,0123对应10进制数为83
printf("%d\n", '\x23');// '\x23'为16进制转义字符,0x23对应10进制数为35
1.5 浮点型:float double

实型变量也可以称为浮点型变量,浮点型变量是用来存储小数数值的。在C语言中, 浮点型变量分为两种: 单精度浮点数(float)、 双精度浮点数(double), 但是double型变量所表示的浮点数比 float 型变量更精确。

由于浮点型变量是由有限的存储单元组成的,因此只能提供有限的有效数字。在有效位以外的数字将被舍去,这样可能会产生一些误差。

不以f结尾的常量是double类型,以f结尾的常量(如3.14f)是float类型。

/传统方式赋值
float a = 3.14f; //或3.14F
double b = 3.14;

printf("a = %f\n", a);
printf("b = %lf\n", b);

//科学法赋值
a = 3.2e3f; //3.2*1000 = 3200,e可以写E
printf("a1 = %f\n", a);

a = 100e-3f; //100*0.001 = 0.1
printf("a2 = %f\n", a);
a = 3.1415926f;
printf("a3 = %f\n", a); //结果为3.141593

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:C语言技术体系自学笔记(三)-创新互联
网站链接:http://chengdu.cdxwcx.cn/article/hjpcj.html