C语言(苏小红)——第二章基本数据类型

C语言程序设计

第二章基本数据类型



2.1 常量与变量

常量顾名思义就是在程序中不能改变其值的量。变量则是在程序执行过程中可以改变值的量。


2.1.1 常量 (Constant)

常量分为:整数常量、实型常量、字符型常量、字符串字面量和枚举常量。 具体的:
  • 整数常量 unsigned int (U)intunsigned shortshortlong(L)unsigned long(UL)
  • 实型常量 float(单精度)、double(双精度)、long double(长双精度)
  • 字符常量 char
  • 字符串字面量 string literal(C中没有明确的字符串类型,一般有char数组表示char*)
  • 枚举常量 enum

2.1.2 变量(Variable)

在C语言程序中,变量在使用前必须先定义。
定义变量的一般形式为: 类型关键字 变量名

int main(void)
{
	int a; 		//用int指定变量a的类型
	float b; 	//用float指定b的类型
	char c; 	// 用char指定c的类型
	a = 1;		// 为int型变量a赋值整型常量1
	b = 2.5;	//为float型变量赋值实型常量2.5
	c = 'A';	//为char型变量赋值字符常量‘A’
	return 0;	//返回0(代表正常退出)
}
  • 变量名(标识符)命名规则:
  1. 标识符只能由数字、英文字母和下划线组成,建议使用驼峰法命名变量,例如:Accumulate_Sum
  2. 标识符必须使用字母和下划线开头。
  3. 标识符不能使用C语言的内定关键字作为标识符
  4. 标识符可以包含多个字符,但是有最大限度,一般由编译器决定,但是大多是情况下无需考虑此限制。
  • 标识符区分大小写 ,SUM和sum
  • 如果定义一个变量后。未对它进行初始化,则该变量的值是一个随机数(静态变量和全局变量除外)
  • int a,b,c;可以,int a = 0,b = 0,c = 0;可以,int a = b = c = 0;不可以,出现编译错误

2.2 简单屏幕输出

代码如下(示例):

#include<stdio.h>
int main(void)
{
	int a; 		//用int指定变量a的类型
	float b; 	//用float指定b的类型
	char c; 	// 用char指定c的类型
	a = 1;		// 为int型变量a赋值整型常量1
	b = 2.5;	//为float型变量赋值实型常量2.5
	c = 'A';	//为char型变量赋值字符常量‘A’
	printf("a = %d\n",a);
	printf("b = %f\n",b);
	printf("c = %c\n",c);
	return 0;	//返回0(代表正常退出)
}

其中#include<stdio.h>是C语言的编译预处理命令(Preprocessor Directives),当C语言程序经过cpp预处理时会将相应的头文件引入,尖括号内的文件成为头文件,stdio.h 为C语言的标准IO库头文件。(详细C语言程序处理程序可以参考csapp)

%d,%f,%c表示格式字符。

  • %d 表示十进制整型格式输出变量的值
  • %c 表示输出字符型变量的值(一个字符)
  • %f 表示十进制小数格式输出变量的值 ,%.2f表示小数点后保留两位小数

2.3 计算变量或数据类型在内存中所占大小

代码如下(示例):

#include<stdio.h>
int main(void)
{
	printf("char size in memory is %d\n",sizeof(char));
	printf("int size in memory is %d\n",sizeof(int));
	printf("float size in memory is %d\n",sizeof(float));
}

sizeof 不是函数名,而是C语言的关键字。返回指定数据类型的字节数。


2.4 赋值运算符

在C语言中算数运算符是左结合的,而赋值运算符是右结合的。
x = x*y/z 			//从左向右运算
a = b = c = 0;		
(a = (b = (c = 0)));//与上一条语句的效果一致,体现了赋值的右结合

2.5 本章错误小结

常见错误示例常见错误描述错误类型
变量未定义就使用编译错误
int Value ;value = 0;忽视了变量区分大小写编译错误
printf(“Input n:”); int n;在可执行语句之后定义变量编译错误
int n =3.5;初始化变量时,赋值常量的类型与定义变量的类型不同有的编译器不提示错误
int m=n=0;在定义变量时,对多个变量进行连续赋初值编译错误
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值