2 C语言 常量,进制,类型限定 输入输出 运算符 类型转换

常量:#define const 字符串常量

1 8 10 16 进制转换

sizeof关键字

变量 int folat char

类型限定 const volatile register

输入输出 printf scanf

运算符 = + - *  / % += -= *= /= %= ++ -- , 运算符优先级

代码块{}

类型转换

1         C语言中的数据类型

1.1      常量

常量就是在程序中不可变化的量,常量是不可被赋值的。

1.1.1         #define

#define的本质就是简单的文本替换

通过#define定义的常量,在C语言里面一般叫宏定义

1.1.2         const

const定义一个变量,但是这个变量的值只能在定义的时候赋予,之后就不可以修改。

对于const类型的变量,一定要在定义的时候给变量赋初值,不然定义之后就无法赋值了。

1.2      字符串常量

在C语言当中“”引用的字符串都是字符串常量,常量一旦定义也是不可以被修改的。

1.3      位,字节,字

1.3.1         位

计算机内部都是二进制的,一个二进制的位,就叫做一个bit,就是一位

1.3.2         二进制

逢二加1,在二进制表达数的时候是只有0和1,而没有2这个数的

二进制最大表示的数,就是2几次幂

对于8位的CPU来讲,最大表达的数是2的8次幂

1.3.3         十进制

逢10加1,只有从0 到9的数,没有10这个数,

1.3.4         八进制

从0到7,逢8加1

在C语言中八进制是数字前面加0

1.3.5         十六进制

0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10

逢16加1,

在C语言当中表达一个十六进制数的方式,数字前面加0x前缀

1.3.6         字节

8个bit为代表一个字节

1.4      sizeof关键字

sizeof与size_t类型

sizeof是计算数据在内存当中占多大空间的,单位字节

由于sizeof永远返回的是一个大于等于0的整数,所以如果用int来表示sizeof的返回值就不合适,size_t一般就是一个无符号的整数.

1.5      十进制,二进制,八进制,十六进制

1.6      int类型

1.6.1         int常量,变量

一个int型数据占据4个字节的内存大小,在16位操作系统下,int是2个字节,在32和64位操作系统下,int是4个字节。

int a;//代表在内存当中开辟一个4个字节大小的空间

a = 10;//代表4个字节的空间内容是常量10

小端对齐和大端对齐

高地址放高位,底地址放低位---小端对齐

高地址放低位,底地址放高位—大端对齐

对于大型unixCPU都是按照大端对齐方式处理int,

但对于x86构架CPU,还有ARM,是小端对齐的

1.6.2         printf输出int值

int a = 0x100;//十六进制

printf(“%d”,a);%d的意思是按照10进制打印一个整数

%x

%X,输出十六进制的时候是用大写的ABCDEF还是小写的abcdef,

1.6.3         printf输出八进制和十六进制

%o

1.6.4         short,long,long long,unsigned int

在32位系统下:

short = 2个字节

long和int一样,是4字节

long long 是8个字节

在64位操作系统下

int,4个字节

long 在大多数64位系统下8个字节

unsigned int//无符号整数

unsigned long//无符号的长整数

unsigned short//无符号短整数

9l,9L,9ll,9LL,9u,9ull,9ULL

1.6.5         整数溢出

当把一个大的整数赋值给小的整数,叫溢出。

int I = 0x12345678

short a = I;

当一个int赋值给short,会将高位抛弃,

1.7      char类型

1.7.1         char常量,变量

char是字符型,代表一个字节的内存

char在内存当中,有符号最大7f,

无符号,最大ff

unsigned char

char的本质就是一个字节,一个BYTE

1.7.2         printf输出char

%c

1.7.3         不可打印char转义符

\a,警报

\b退格

\n换行

\r回车

\t制表符

\\斜杠

\’单引号

\”双引号

\?问号

1.7.4         char和unsigned char

char取值范围为-128到127

unsigned char为0-255

1.8      浮点float,double,longdouble类型

1.8.1         浮点常量,变量

float f = 2.5;

double f1 = 3.1415926

1.8.2         printf输出浮点数

%f,%Lf

1.9      类型限定

1.9.1         const

const限定一个变量的值不可以改变

1.9.2         volatile

告诉编译器不要自作聪明的给我优化代码,把我的变量优化的寄存器里面计算,只要是volatile类型变量,每一步都需要从内存当中读取。

1.9.3         register

register告诉编译器,这个变量只是用寄存器就好,提高效率,所以说register只是一个建议,而不是必须的结果。

2         字符串格式化输出和输入

2.1      字符串在计算机内部的存储方式

字符串是内存中一段连续的char空间,以’\0’结尾

字符串就是0结尾的连续char的内存

2.2      printf函数,putchar函数

printf格式字符


字符


对应数据类型


含义


d


int


接受整数值并将它表示为有符号的十进制整数


hd


Short int


短整数


hu


Unsigned short int


无符号短整数


o


unsigned int


无符号8进制整数


u


unsigned int


无符号10进制整数


x / X


unsigned int


无符号16进制整数,x对应的是abcdef,X对应的是ABCDEF


f


float或double


单精度浮点数双精度浮点数


e / E


double


科学计数法表示的数,此处"e"的大小写代表在输出时用的“e”的大小写


c


char


字符型。可以把输入的数字按照ASCII相应转换为对应的字符


s / S


char * / wchar_t *


字符串。输出字符串中的字符直至字符串中的空字符(字符串以‘\0‘结尾,这个‘\0‘即空字符)


p


void *


以16进制形式输出指针


%


%


输出一个百分号

printf附加格式


字符


含义


l


附加在d,u,x,o前面,表示长整数


-


左对齐


m(代表一个整数)


数据最小宽度


0


将输出的前面补上0直到占满指定列宽为止不可以搭配使用-


N(代表一个整数)


宽度至少为n位不够以空格填充

printf是打印一个字符串

putchar是打印一个字符

2.3      scanf函数与getchar函数

3         运算符表达式和语句

3.1      基本运算符

3.1.1         =

数据对象:泛指数据在内存的存储区域

左值:表示可以被更改的数据对象

右值:能赋给左值的量

3.1.2         +

3.1.3         –

3.1.4         *

3.1.5         /

3.1.6         %

取模,取余数

3.1.7         +=

int a = 10;

a = a + 5;

可以简写成a +=5;

3.1.8         -=

a = a – 5;a -= 5;

3.1.9         *=

a = a * 5;a *= 5;

3.1.10      /=

3.1.11      %=

3.1.12      ++

3.1.13      --

3.1.14      逗号运算符

int I = 6 + 5, 3 + 2

逗号表达式先求逗号左边的值,然后求右边的值,整个语句的值是逗号右边的值。

3.1.15      运算符优先级


优先级


运算符


结合性


1


++(后缀),--(后缀),()(调用函数),{}(语句块),.,->


从左到右


2


++(前缀),--(前缀),+(前缀),-(前缀),!(前缀),~(前缀),sizeof,*(取指针值),&(取地址),(type)(类型转化)


从右到左


3


*, /, %


从左到右


4


+,-


从左到右


5


<< >>


从左到右


6


< > <= >=


从左到右


7


== !=


从左到右


8


&


从左到右


9


^


从左到右


10


|


从左到右


11


&&


从左到右


12


||


从左到右


13


?


从右到左


14


=,*=,%=,+=,-=,<<=,>>=,&=,|=,^=


从右到左


15


,(逗号运算符)


从左到右

3.2      复合语句

{}代码块

3.3      类型转化

double d = 10.2;

int a =d;//隐式转换

int a1 = 3;

int a2 = 2;

double mid = (double)a1 / (double)a2;//显示的强转

printf("mid = %f\n", mid);

时间: 2024-10-17 20:11:03

2 C语言 常量,进制,类型限定 输入输出 运算符 类型转换的相关文章

2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对keyword有特殊颜色标记 2:标识符(掌握) (1)就是给类,接口.方法,变量等起名字的字符序列 (2)组成规则: A:英文大写和小写字母 B:数字 C:$和_ (3)注意事项: A:不能以数字开头 B:不能是java中的keyword C:区分大写和小写 (4)常见的命名规则(见名知意) A:

2.4.2-Java语言基础(进制转换)

二进制转成十进制 八进制.十六进制转成十进制 二进制转成八进制.十六进制 八进制.十六进制转成二进制 八进制转成十六进制 十六进制转成八进制 十进制转成二进制.八进制.十六进制 ?  负数的二进制表现形式 ?  对应的正数二进制取反加1 2.4.2-Java语言基础(进制转换)

黑马程序员——C语言基础---进制内存分析与类型说明符

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一. 进制 1. 什么是进制 l 是一种计数的方式,数值的表示形式 汉字:十一   十进制:11  二进制:1011  八进制:13 l 多种进制:十进制.二进制.八进制.十六进制.也就是说,同一个整数,我们至少有4种表示方式 2. 二进制 1> 特点:只有0和1,逢2进1 2> 书写格式:0b或者0b开头 3> 使用场合:二进制指令\二进制文件,变量在内存中就是二进制存储 4>

【学习ios之路:C语言】进制.位运算.栈

1.进制转换 1).10进制转为N进制.方法:(连除倒取余). 2).N进制转换为10进制.方法:(按权求和法):当前位上的数乘以基数的位数减1次方. 例: 0b1111 ---- 1* 2^3 + 1*2^2 +1 * 2^1 +1*2^0 = 15; 038 ----- 3*16^1 +8*16^0 = 56; 3).N进制转换N进制. 例如: 二进制 --- 16进制 1010   0011  ----  A 3 1111   0011  ----  F 3 int a = 010;//8

C语言中进制知识总结

1.什么是进制 进制是一种计数的方式,常用的有二进制.八进制.十进制.十六进制.任何数据在计算机内存中都是以二进制的形式存放的. 我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数:八进制数是以8为计算单元,满8进1位的数. 对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xC. 2.进制的转换规则 遵循满进制值进1位,个位数变为0的原理,下面我们以十进制数18为例,对1-18中每一个数值转换各种进制做一

C语言之进制

进制 一种计数的方式.侧重点在于计数的时候是逢多少进一. 1)      C语言可以识别的进制 二进制 每一位. 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 0 在C语言中,写一个二进制的数的方式就是在前面加一个 0b或者0B的前缀,二进制每一位是0或者1,逢2进1; 2. 八进制 每一位. 0 1 2 3 4 5 6 7 10 11 在C语言中,写一个八进制的数的方式就是在前面加一个 0的前缀,逢8进1; %o    将整型变量中得数据以八进制的形式输出 3. 十进制

JAVA 蹒跚自学之 第二日 常量 进制

概念 :  不能变化的量叫做常量 分类:   1  整数常量    所有整数    例如   1,2,3,4,,,,,            2  小数常量    所有小数     例如    3.45    2.44   2.1              3  布尔型常量    只有2个值     true   false             4   字符常量   将一个 数字  字母  符号  用单引号 ' '标识了            5   字符串常量    将一个或者多个 数字 

新手第一天学习 C#语言(进制互换)

说起来我们对一些陌生或者未知的东西有一些恐惧感,但是又有一些期待,虽然我不确定自己能不能学会这门语言,但是我会尽自己最大的努力学. 我们第一天学的的内容呢,对大多数的人都知道,计算机的语言是二进制,但是生活中我们用的是十进制.那要怎么换算二进制呢? 比如一个例子:     我有个数字72 (十进制)   换成 二进制 72  除以2   得商   为  36  18  9  4  2  1 所得余数  为   0     0   1  0  0  1 那么从左到右写   为   1   0  0

一起talk C栗子吧(第七回:C语言实例--进制转换)

各位看官们.大家好,从今天開始.我们讲大型章回体科技小说 :C栗子,也就是C语言实例. 闲话休提, 言归正转.让我们一起talk C栗子吧! 看官们.上一回中咱们说的是生成随机数的样例.这一回咱们说的样例是:进制转换.说到进制预计大家 都不陌生.计算机中的进制有二进制.八进制,十进制,十六进制. 今天咱们将要说的是十进制怎样转换成二进制.八进制和十六进制.在这里我把敲代码的步骤和算法思路 写出来供大家參考. 1.获取用户想要转换的数值和想到转换的进制.这里要检查输入是否正确.这是程序健壮性的体现