四、C语言数据类型

本文详细介绍了C语言编程规范,包括缩进、命名规则、函数定义和注释。同时,深入讲解了数据类型,如整型、实型、字符型变量及其存储类别。还探讨了常量的不同形式,如数值型、字符型和符号常量,并介绍了ASCII值、转义字符。此外,文章还涵盖了变量的使用和混合运算。最后,讨论了变量的存储类别,包括静态存储、动态存储、寄存器和外部存储。

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

一、编程规范

1、缩进

缩进:代码统一缩进4个字符,不采用空格,用tap键控位

#include<stdio.h>
int main()
{
	printf("Hi,CSDN!"); /*缩进4字符*/
	return 0;/*缩进4字符*/
}

2、变量、常量命名

常量变量
成员变量:m_统一大写
普通变量:相关意义,添加类型的首字母名称首字母要大写
指针变量:标识符前加p,名称首字母要大写
#define AGE 20  /*常量*/
int m_iAge;  /*成员变量*/
int iNumber;  /*普通变量*/
int *pAge;  /*指针变量*/

3、函数命名

函数名的首字母要大写,其后大小写混合

int AddTwoNum(int num1,int num2);

4、注释

单行注释

int iLong; //单行注释

多行注释(常用,一般放代码后面)

int pAge;   /*多行注释*/

二、关键词

在这里插入图片描述

关键字不允许作为标识符出现在程序中

三、标识符

1、标识符是由数字、字母、下划线组成

int go_in2;  //true

2、所有标识符必须由字母或下划线开头
不能以数字或符号开头

int 2num;    //false

3、在C语言中区分字母大小写

int max;   //与下面含义不同
int Max;   //与上面含义不同

4、上面也说过,关键字不能作为标识符,C语言区分大小写,所以关键字大写时就不再是关键字,可以看看int和Int的颜色

int int;   //false
int Int;   //true

5、标识符的命名含义,最好是有一定的含义,不要用缩写

int width;  //宽

四、数据类型

数据类型

五、常量

已经定义了,不能改变的就是常量(自我认为)

常量可以分为三大类:
数值型常量(包括整型和实型)
字符型常量
符号常量

1、数值型常量

(1)整型常量:

分为长整型、短整型、符号整型和无符号整型

L(long)表示长整型
U(unsigned)表示无符号整型

LongNum=1000L;        //长整型
UnsignedLongNum=2000u; //无符号整型

后缀不区分大小写
不能重复后缀
LongNum=1000LL; //false

(2)进制表达

a.八进制前缀加“0”,包含数字为0~7

OctaINumber=0123;   

前缀要加0 数字在0~7内 不能含有其它数字

b.十进制不需要前缀,包含数字为0~9

AlgorismNumber=12354;

c.十六进制前缀加“0x”,包含数字为0~9
以及A~F

HexNumber=0x123;
HexNumber2=0x3cd;

字母不用区分大小写

2、实型常量

也称为浮点型,由整数和小数组成

(1)科学计数法
用十进制方式表达

SciNum1=123.45;
SciNum2=0.3244;

(2)指数方式
用e或E表示
例如:4500 = 45e2
0.34 = 34e-2

SciNum1=1.2345e2;
SciNum2=3.244e-1;

3、字符常量

(1)字符常量
a.用单引号 ‘’ 表示
b.只能有一个字符
c.区分大小写
d.使用putchar函数进行输出

#include <stdio.h>
int main()
{
	putchar('H');
	putchar('i');
	putchar('!');
	return 0;
}

在这里插入图片描述

(2)字符串常量
a.用双引号 “” 表示
b.可为空值

#include<stdio.h>
int main()
{
	printf("Welcone to CSDN!\n");
	return 0;
}

在这里插入图片描述

#include<stdio.h>
int main()
{
	printf("");
	return 0;
}

在这里插入图片描述

a、字符常量与字符串常量区别

字符常量字符串常量
单引号双引号
只有一个字符可多个
长度只为1长度可任意
不可为空可为空

字符串常量存储时,系统会自动添加结束标志“\0”,只是不显示而已
字符常量存的是ASCII码,字符串常量不仅存有效字符还要存结束标志“\0”

b、ASCII值

ASCII大多,可以不用记ASCII值
用这代码即可计算
下面也会用字符型变量来算(个人认为这个方法简单)

#include<stdio.h>
int main()
{
	char ch='a';
	printf("%d\n",(int)ch);
	return 0;
}

在这里插入图片描述

4、转义字符

转义字符意义
\n换行
\t横向空位
\v竖向跳格
\b退格
\r回车
\f走纸换页
\\反斜杠“\”
\’单引号符
\a鸣铃
\ddd1~3位八进制所代表字符
\xhh1~2位十六进制所代表字符

5、符号常量

上一篇长方体体积用到过define宏定义,这次用实列来讲

用户输入圆的半径来计算圆的面积

#include<stdio.h>
#define PAI 3.14  //define就是符号常量

int main()
{
	float radius;    //定义圆的半径
	float area=0;     //定义圆的面积

	printf("请输入圆的半径:");
	scanf("%f",&radius);

	area=radius*radius*PAI;
	printf("圆的面积为:%.2f",area);  //.2表示保留两位小数
	return 0;
}

在这里插入图片描述

这里定义变量也可以使用double,只是float比double消耗内存少,运算快,都是定义小数的
对应的输入或输出值不同
单精度float对应的是“%f”
双精度double对应的是“%lf”

六、变量

定义了,还可以进行改变的就是变量

1、整型变量

可以不用记,就是科普(signed通常省略)

类型关键字
有符号基本整型[signed] int
无符号基本整型unsigned [int]
有符号短整型[signed] short [int]
无符号短整型unsigned short [int]
有符号长整型[signed] long [int]
无符号长整型unsigned long [int]
#include<stdio.h>
int main()
{
	/*signed可省略*/
	int a=10; //定义有符号基本整型变量
	unsigned b;  //定义无符号基本整型变量 
	short c;  //定义有符号短整型 变量 
	unsigned short d;  //定义无符号短整型变量
	long e=9;  //定义有符号长整型变量
	unsigned long f;  //定义无符号长整型变量
	
	/*可对变量进行赋值
	变量中后赋值的可以覆盖前赋值
	看a和e*/
	a=1;
	b=2;
	c=3;
	d=4;
	e=5;
	f=6;
	
	printf("	a=%d\n	b=%d\n	c=%d\n	d=%d\n	e=%d\n	f=%d",a,b,c,d,e,f) ;
}

在这里插入图片描述

2、实型变量

类型名称关键字
单精度float
双精度double
长双精度long double
关于单 双精度在符号常量就讲了
这里就讲一下长双精度
长双精度字节8位 12位 16位,大多数是16位
对应的输入输出值是“%f”

3、字符型变量

作用:1、用来存储字符常量的变量(ASCII码值)
2、可进行查询对应ASCII值
占一个字节,取值范围-128~127
对应输入输出符号为“%c”

#include<stdio.h>
int main()
{
	/*定义字符型变量和整型变量*/
	char ch;
	char cd;
	char fd;
	int fe;
	/*为变量赋值*/
	ch='a';
	cd=97;
	fd=97;
	fe='a';
	/*可进行ASCII查询对应数值*/
	printf("%c\n",ch);
	printf("%c\n",cd);
	printf("%d\n",fd);
	printf("%d",fe);
 } 

在这里插入图片描述

七、变量的存储类别

存储类型有两种:
1、静态存储(static):程序运行时为其分配固定的存储空间
2、外部存储(auto):程序运行时需要动态地分配存储空间

1、静态存储(stati)

作用域:限本文件内部调用

#include<stdio.h>
int Add()
{
	static int a=1;  //定义static整型变量 
	static double b=1.1; //定义static双精度型变量 
	a=a+1;           //变量加1 
	b=b+0.9;
	printf("%d\n",a);
	printf("%.2lf\n",b);
 } 
 int main()
 {
 	printf("第一:");//显示结果 
 	Add();           //调用Add函数 
 	printf("第二:");
 	Add();
 	printf("第三:");
 	Add();
 	printf("第四:");
 	Add();
 }

在这里插入图片描述

2、动态存储(auto)

关键字auto可以省略,如果不特别指定
作用域:函数内部

#include<stdio.h>
int Add()
{
	auto int a=1;  //定义auto整型变量 
	auto double b=1.1; //定义auto双精度型变量 
	a=a+1;           //变量加1 
	b=b+0.9;
	printf("%d\n",a);
	printf("%.2lf\n",b);
 } 
 int main()
 {
 	printf("第一:");//显示结果 
 	Add();           //调用Add函数 
 	printf("第二:");
 	Add();
 	printf("第三:");
 	Add();
 	printf("第四:");
 	Add();
 }

在这里插入图片描述

3、寄存器(register)

可把某个局部变量指定存放在计算机某个硬件寄存器中,而不是内存
用户无法获得寄存器变量的地址

4、外部(extem)

extern声明程序中将要调用到尚未定义的外部变量
通常,外部存储类都用于声明在另一个转换单元中定义的变量

 /*extern1文件中*/
 #include<stdio.h>
 int main()
 {
 	extern int a;   //定义extern整型变量 
 	a=a+10;
 	printf("%d\n",a);
 }
 /*extern2文件中*/
 #include<stdio.h>
 int a=100;        //定义一个整型变量 

在这里插入图片描述

八、混合运算

各类型变量之间的混合运算
例:将整型(int)、字符型(char)、单精度型(float)和双精度型(double)进行相加,再输出结果

#include<stdio.h>
 int main()
 {
 	int a=1;  //定义整型变量
	float b=2.2; //定义单精度变量
	double c=3.14;  //定义双精度变量
	char d='A';  //定义字符型变量 A ASCII值为65 
	 
	double num=a+b+c+d;  //各字符变量的相加 
	printf("各变量总数为:%.2lf",num); 
 }

在这里插入图片描述

九、实践与练习

1、定义一个整型变量 为其赋值345,使用printf进行输出
2、使用字符型变量,利用ASCII值输出“Good bye!”
3、在自定义的函数中使用静态存储,计算3的立方
4、在文件1中定义外部字符型变量extern,为其赋值为“A” 在文件2中使用这个变量输出
习题答案https://dxydjrxl.lanzoui.com/iZH35vyu9ih

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值