C语言学习【C语言基本数据类型】
整数溢出
/* 整数溢出 */
#include "stdio.h"
/* @Last Modified Time: 2024-05-05 17:53:49 */
int main(void)
{
int i = 2147483647;
unsigned int j = 4294967295;
printf("%d %d %d\n", i, i+1, i+2);
printf("%u %u %u\n", j, j+1, j+2);
return 0;
}
程序运行结果(溢出)
2147483647 -2147483648 -2147483647
4294967295 0 1
打印short、long、long long和unsigned类型
/* @Last Modified Time: 2024-05-05 18:15:44 */
/* 更多printf()特性 */
#include "stdio.h"
int main(void)
{
unsigned int un = 3000000000;
short end = 200;
long big = 65537;
long long verybig = 12345678908642;
printf("un = %u are not %d\n", un, un);
printf("end = %hd and %d\n", end, end);
printf("big = %ld and not %hd\n", big, big);
printf("verybig = %lld and not %ld\n", verybig, verybig);
return 0;
}
程序运行结果
un = 3000000000 are not -1294967296
end = 200 and 200
big = 65537 and not 1
verybig = 12345678908642 and not 1942899938
使用h
修饰符可以显示较大整数倍截断成short
类型值的情况;
使用%hd
,printf()
只会查看后16
位;
使用%ld
,printf()
只显示存储在后32
位的值.
char类型
char
类型用于存储字符,标准ASCII
码的范围是0~127
,通常,char
类型被定义为8
位的存储单元;
声明char类型变量
char response;
char itable, latan;
字符常量和初始化
char grade = 'A';
在C
语言中,用单引号
引起来的单个字符被称为字符常量(character constant)
char broiled; /* 声明一个char类型的变量 */
broiled = 'T'; /* 为其赋值 正确 */
broiled = T; /* 错误 此时T是一个变量 */
broiled = "T"; /* 错误 此时"T"是一个字符串 */
转义序列
单引号只适用于字符、数字和标点符号,但有些ASCII
字符却打印不出来
如果要用八进制ASCII
码表示一个字符,可以在编码值前面加一个反斜杠(\)
并用单引号括起来:
beep = '\007';
还可以用十六进制形式表示字符常量,即反斜杠后面根一个x
或X
,再加上1~3
位十六进制数字
双引号中的字符集合叫做字符串
打印字符
/* 显示字符的代码编号 */
#include "stdio.h"
int main(void)
{
char ch;
printf("Please enter a character.\n");
scanf("%c", &ch);
printf("The code for %c is %d.\n", ch, ch);
return 0;
}
程序运行结果
Please enter a character.
C
The code for C is 67.