C 程序设计语言-上

本文详细介绍了C语言的基础知识,包括数据类型及其长度、常量的表示、声明的方式、算术和位运算符的使用,以及类型转换的规则。特别强调了类型转换中可能遇到的问题,如符号扩展和隐式类型转换,并提供了强制类型转换的示例。同时,文章提及了预处理器中的#include和#define指令的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类型、运算符与表达式

局部变量一般用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字

数据类型及长度

char 字符型 占用一个字节,可以存放本地字符集中的一个字符
int 整型,通常反映了所用机器中整数的最自然长度
flaot 单精度浮点型
double 双精度浮点型
此外可以用short与long两个限定符用于限定整型

#include <stdio.h>

int main() {
   
    printf("Size of int: %zu bytes\n", sizeof(int));
    printf("Size of short: %zu bytes\n", sizeof(short));
    printf("Size of long: %zu bytes\n", sizeof(long));
    printf("Size of long: %zu bytes\n", sizeof(long int));
    printf("Size of long: %zu bytes\n", sizeof(float));
    printf("Size of long: %zu bytes\n", sizeof(double));
    /*
    这是因为int和float在内存中的存储方式不同。int类型的变量通常采用二进制补码表示,用于表示整数。
	而float类型采用IEEE 754标准的浮点数表示法,用于表示实数。在IEEE 754标准中,float类型的数值用
	32位表示,其中1位表示符号位,8位表示指数位,23位表示尾数位。这种表示法可以表示比int类型更大
	范围的数,因为浮点数的指数位可以用来表示更大的数字范围,同时也可以表示小数和负数。因此,虽然
	int和float都是32位,但是它们所能表示的范围和精度是不同的。
	*/ 
    return 0;
}
short int sh;
long int counter;

各编译器可以根据硬件特性自主选择合适的类型长度,但要遵循下列限制;short与int类型至少16位,而long类型至少32位,并且short类型不得长于int类型,而int类型不得长于long类型。
类型限定符signed与unsigned可用于限定char类型或任何整型,unsigned类型的书总是正值或0,并遵守算术模2的n次平方定律,其中n是该类型占用的位数,例如:unsigned char类型的范围为0~255,signed char类型范围为-128 ~ 127。
练习 2-1
编写一个程序以确定signed及unsigned限定的char、short、int、long类型变量的取值范围。采用打印标准头文件中的相应值以及直接计算两种方式实现后一种方法的实现较困难一些,因为要确定各种浮点类型的取值范围。
unsigned int A 比起 signed int B或者32位的int B ,因为没有符号,所以可以表示正数的范围比有符号的多一倍。

#include <stdio.h>
#include <limits.h>
int main() {
   
    printf("Signed char min: %d\n", SCHAR_MIN);
    printf("Signed char max: %d\n", SCHAR_MAX);
    printf("Unsigned char max: %u\n", UCHAR_MAX);
	printf("----------------------------------\n");
	 
    printf("Signed short min: %d\n", SHRT_MIN);
    printf("Signed short max: %d\n", SHRT_MAX);
    printf("Unsigned short max: %u\n", USHRT_MAX);
	printf(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值