c语言数据类型结构类型,C语言学习一 — 程序结构基本语法及数据类型

C 程序结构

C Hello World 实例

C 程序主要包括以下部分:

预处理器指令

函数

变量

语句 & 表达式

注释

让我们看一段简单的代码,可以输出单词 "Hello World":

#include

int main()

{

/* this is my first c program*/

printf("Hello, World! \n");

return 0;

}

接下来我们讲解一下上面这段程序:

程序的第一行 #include 是预处理器指令,告诉 C 编译器在实际编译之前要包含 stdio.h 文件。

下一行 int main() 是主函数,程序从这里开始执行。

下一行 /*...*/ 将会被编译器忽略,这里放置程序的注释内容。它们被称为程序的注释。

下一行 printf(...) 是 C 中另一个可用的函数,会在屏幕上显示消息 "Hello, World!"。

下一行 return 0; 终止 main() 函数,并返回值 0。

C 基本语法

我们已经看过 C 程序的基本结构,这将有助于我们理解 C 语言的其他基本的构建块。

C 的关键字

下表列出了 C 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

关键字

说明

auto

声明自动变量

break

跳出当前循环

case

开关语句分支

char

声明字符型变量或函数返回值类型

const

声明只读变量

continue

结束当前循环,开始下一轮循环

default

开关语句中的"其它"分支

do

循环语句的循环体

double

声明双精度浮点型变量或函数返回值类型

else

条件语句否定分支(与 if 连用)

enum

声明枚举类型

extern

声明变量或函数是在其它文件或本文件的其他位置定义

float

声明浮点型变量或函数返回值类型

for

一种循环语句

goto

无条件跳转语句

if

条件语句

int

声明整型变量或函数

long

声明长整型变量或函数返回值类型

register

声明寄存器变量

return

子程序返回语句(可以带参数,也可不带参数)

short

声明短整型变量或函数

signed

声明有符号类型变量或函数

sizeof

计算数据类型或变量长度(即所占字节数)

static

声明静态变量

struct

声明结构体类型

switch

用于开关语句

typedef

用以给数据类型取别名

unsigned

声明无符号类型变量或函数

union

声明共用体类型

void

声明函数无返回值或无参数,声明无类型指针

volatile

说明变量在程序执行中可被隐含地改变

while

循环语句的循环条件

C99 新增关键字

_Bool

_Complex

_Imaginary

inline

restrict

C11 新增关键字

_Alignas

_Alignof

_Atomic

_Generic

_Noreturn

_Static_assert

_Thread_local

C 数据类型

在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

C 中的类型可分为以下几种:

序号

类型与描述

1

基本类型: 它们是算术类型,包括两种类型:整数类型和浮点类型。

2

枚举类型: 它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。

3

void 类型: 类型说明符 void 表明没有可用的值。

4

派生类型: 它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。

数组类型和结构类型统称为聚合类型。函数的类型指的是函数返回值的类型。在本章节接下来的部分我们将介绍基本类型,其他几种类型会在后边几个章节中进行讲解。

整数类型

下表列出了关于标准整数类型的存储大小和值范围的细节:

下表列出了关于标准整数类型的存储大小和值范围的细节:

类型

存储大小 32 /64

值范围

char

1 字节

-128 到 127 或 0 到 255

unsigned char

1 字节

0 到 255

signed char

1 字节

-128 到 127

int

2 或 4 字节

-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647

unsigned int

2 或 4 字节

0 到 65,535 或 0 到 4,294,967,295

short

2 字节

-32,768 到 32,767

unsigned short

2 字节

0 到 65,535

long

4 字节

-2,147,483,648 到 2,147,483,647

unsigned long

4 字节

0 到 4,294,967,295

注意,各种类型的存储大小与系统位数有关,但目前通用的以64位系统为主。

以下列出了32位系统与64位系统的存储大小的差别(windows 相同):

cdc657e43ea0

sizeof32-64.jpg

下表列出了关于标准浮点类型的存储大小、值范围和精度的细节:

类型

存储大小

值范围

精度

float

4 字节

1.2E-38 到 3.4E+38

6 位小数

double

8 字节

2.3E-308 到 1.7E+308

15 位小数

long double

16 字节

3.4E-4932 到 1.1E+4932

19 位小数

头文件 float.h 定义了宏,在程序中可以使用这些值和其他有关实数二进制表示的细节。下面的实例将输出浮点类型占用的存储空间以及它的范围值:

#include

#include

int main()

{

printf("long size is : %lu \n", sizeof(long double));

printf("float 存储最大字节数 : %lu \n", sizeof(float));

printf("float 最小值: %E\n", FLT_MIN );

printf("float 最大值: %E\n", FLT_MAX );

printf("精度值: %d\n", FLT_DIG );

return 0;

}

long size is : 16

float 存储最大字节数 : 4

float 最小值: 1.175494E-38

float 最大值: 3.402823E+38

精度值: 6

Process finished with exit code 0

void 类型

void 类型指定没有可用的值。它通常用于以下三种情况下:

序号

类型与描述

1

函数返回为空 C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status);

2

函数参数为空 C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void);

3

指针指向 void 类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。

如果现在您还是无法完全理解 void 类型,不用太担心,在后续的章节中我们将会详细讲解这些概念。

常用基本数据类型占用空间(64位机器为例)

char : 1个字节

int :4个字节

float:4个字节

double:8个字节

基本类型书写

整数

a,默认为10进制 ,10 ,20。

b,以0开头为8进制,045,021。

c.,以0b开头为2进制,0b11101101。

d,以0x开头为16进制,0x21458adf。

小数

单精度常量:2.3f 。

双精度常量:2.3,默认为双精度。

字符型常量

用英文单引号括起来,只保存一个字符'a'、'b' 、'*' ,还有转义字符 '\n' 、'\t'。

字符串常量

用英文的双引号引起来 可以保存多个字符:"abc"。

1、数据类型转换:C 语言中如果一个表达式中含有不同类型的常量和变量,在计算时,会将它们自动转换为同一种类型;在 C 语言中也可以对数据类型进行强制转换;

2、自动转换规则:

a)浮点数赋给整型,该浮点数小数被舍去;

b)整数赋给浮点型,数值不变,但是被存储到相应的浮点型变量中;

3、强制类型转换形式: (类型说明符)(表达式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值