c的详细学习(2)数据类型,运算符与表达式

(1)c语言的基本符号

任何一种基本语言都有自己的基本词汇表。c语言的基本词汇表有一下几部分:

*数字10个;

*英文字母:大小写各26个;

*下划线字符“_”;

*运算符:表达程序的基本操作使用的一些符号;

*关键字:职位表达程序功能使用的一些英文单词或单词缩写;

(2)标识符:

标识符是用来为符号常量,变量,函数,数组,类型,文件命名的有效字符序列。命名规则如下:

*只能有数字字母和下划线组成;

*第一个字符必须使用字母或者下划线;

*不能使用关键字;

*区分大小写;

*ANSI C没有规定标识符的长度,各个操作系统允许的标识符的长度不一样。Turbo C规定标识符最长为32个字符,但一般建议标识符的长度最好不超过8个;

用标识符形式标识的有常量,变量,和关键字。

(3)c语言的数据类型

16进制数以0x或者0X开头,并由数字0~9和字符a~f或者字符A~F组成的数字序列。习惯上,以0x开头时用小写字母,以0X开头时用大写字母。一个整型变量后面加上一个字母L或者小写l,则明确指出该变量是long int型的,这种处理方式往往用于函数调用时参数传递过程中。

用指数形式表达小数:一般格式是“实数(整数)+e(或者E)+整数”。

许多c的编译系统将实型常量当做双精度来处理。例如:

float  x;

x=1.23454*6832.12;

系统将把1.23454和6832.12按双精度来存储(占64位)和运算,得到一个双精度的乘积,然后取前7位赋给变量x.这样可以保证结果更加精确。但是降低了运算的速度。可以在数的后面加上f或者F,则数字将按照单精度(占32位)存储和计算。

双精度Double与单精度Float的比较:

 1 #include<stdio.h>
 2
 3 int main(){
 4
 5   float a;
 6   double b;
 7   a=1234.111111;
 8   b=1234.111111;
 9   printf("a=%f\nb=%f\n",a,b);
10 }

由此看出,由于float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的。

(4)常用转义字符:

(\0    空字符    0),(\t    水平制表,跳到下一个Tab位置    9),(\r    回车,将当前位置移到本行的开头    13),(\n    换行,将当前位置移到下一行的开头    10),(\‘    双撇号    34),(\""    单撇号    39)

1 #include<stdio.h>
2
3 int main(){
4   printf("c\tlanguages\be\rC\n");
5   printf("is\tusef\165\x6c\n");
6   return 0;
7 }

\165中165是8进制数,转换为十进制数ASCII码为117,’\165‘表示字符‘u‘。

无论字符变量还是字符常量,在内存中都只占一个字节,用来存放一个字符。字符在内存中是以ASCII码来进行存储的。字符型数字既可以用整数形式输出也可以用字符格式输出。

(5)运算符和表达式

5.1逗号运算符

 1 #include<stdio.h>
 2
 3 int main(){
 4   int m=1,n=2;
 5   int a;
 6   a=(m+n,m-n);
 7   printf("a的值为%d,表达式的值为%d\n",a,a=(m+n,m-n));
 8   a=m+n,m-n;
 9   printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n));
10   a=m+n,m-n+a;
11   printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n+a));
12   printf("");
13   return 0;
14 }

5.2强制类型转换

对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。

 1 #include<stdio.h>
 2
 3 int main(){
 4   double y=7.56;
 5   int a=2,b;
 6   b=(int)y%a;
 7   printf("b=%d,",b);
 8   printf("y=%f\n",y);
 9   return 0;
10 }

强制类型转换运算符的优先级高于取余运算符。

5.3自增运算和自减运算

自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。

x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1.

x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。

5.4位运算

c语言是为开发系统软件而设计的,因此它提供了操作二进制数的功能,这些功能通常只有汇编语言才具有。

应用举例:

 1 #include<stdio.h>
 2
 3 int main(){
 4   unsigned int A=0xb3,B=0x9a;
 5   printf("~A=%x\n",~A);
 6   printf("A&B=%x\n",A&B);
 7   printf("A|B=%x\n",A|B);
 8   printf("A^B=%x\n",A^B);
 9   A=27;B=28;
10   printf("A<<1=%u\n",A<<1);
11   printf("A>>1=%u\n",B>>1);
12   return 0;
13 }

运行结果如下:(分别为取反,与,或,异或,右移与左移)

时间: 2024-10-24 03:40:25

c的详细学习(2)数据类型,运算符与表达式的相关文章

JS基础-数据类型-运算符和表达式-变量和常量

1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ; 结束 严格区分大小写 ex:console.log(); //正确 Console.log(); //错误 所有符号必须是英文标点符号 2.js注释 // :单行注释 /**/ :多行注释4.变量和常量 1.变量 1.声明变量 var 变量名; ex: var uname; 2.为变量赋值 变量

03-java学习-基本数据类型-运算符-键盘接收用户输入

java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: java.util.Scanner类的了解和使用. 原文地址:https://www.cnblogs.com/Tpf386/p/10485788.html

python学习笔记-3运算符与表达式

①表达式:将不同的数据(包括函数,变量)用运算符按一定的规则联结起来的式子 ②运算符: 算术运算符: + 加法运算符 -减法运算符 *乘法运算符 /除法运算符,整数与整数相除只能得出整数,若需得到小数部分,要在一个数中加上小数点后一位          如3/2只能得到1,如果要得到1.5,需这样运算:3.0/2即可得到1.5 //整除运算符,无论两个数的相除的结果有没有小数部分,结果都是的到整数部分 **次方运算符,比如三的四次方 3**4 %求余运算符,的到的结果为余数 赋值运算符: +=,

权威指南学习心得之运算符和表达式

1.数组 数组直接量中的列表逗号之间的元素可以忽略,这是省略的空位自动填充值undefined,元素列表结尾处可以留下单个逗号,这时并不会创建一个新的值undefined 2.操作符 属性访问和函数调用排在最高级 一元操作符.赋值.三元条件运算符都具有从右到左的结合特性. + 加法运算符的转换规则优先考虑字符串连接,如果其中一个操作数是字符串或者转换为字符串的对象,则另外一个操作数也转换为字符串,加法将进行字符串的连接操作.如果两个操作数都不是类字符串,那么将进行算术加法运算 1.如果其中一个操

ADO.NET详细学习笔记

[1]ADO.NET和ADO的区别: ADO以Recordset存储,而ADO.NET则以DataSet表示.Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接.反之,DataSet可以是多个表的集合.ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的.ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本,ADO.NET的数据库连接也只有在这段时间需要在线. 由于ADO使用COM技术,

Android应用开发工程师详细学习路线

一个出色的Android开发工程师应该掌握哪些必要技能呢?我想应该掌握如下几个方面: 语言基础: 语言基础应该掌握C语言开发和Java语言开发,有人会问学习Android开发还要学习C语言吗?是这样的.Android底层是由C语言和C++来实现并运行Linux平台上,上层应用才是Java语言实现的,我们经常通过Java JNI的方式来调用C和C++,如果不会C语言就不知道如何使用JNI,如何调用底层C和C++实现 2. Android 基本组件及编程思想: 虽然Android应用由Java编写,

C#学习之数据类型-(一:简介)

c#是强类型语言,对变量的类型要求很严格,如果是整数,就用int表示,如果是字符串就用string表示等等:因此每个变量和对象都必须具有声明的类型.它要求所有的变量都必须先定义后使用,相对而言JavaScript语言属于弱类型语言,它在声明变量时,不管什么类型,统一用var关键字.在此不做介绍. c#语言的数据类型有两种:值类型和引用类型.值类型放在内存栈中,而引用类型放在内存队中:在内存中存放的内容也是不一样的,值类型存放的是变量本身,而引用类型存放的是变量的引用. 打个比方:值类型相当于现金

C语言学习笔记(四) 运算符优先级

C语言中有很多运算符,除了四则运算,还有位运算.比较运算.逻辑运算.赋值运算等等,令人眼花缭乱的同时,优先级也让人头疼.通常建议在写代码的时候不用省略括号,但是并不是所有程序员都会按照这个规矩来,因此还是有必要记录一下,以备查阅. 下面表格中详细记录了各种运算符的优先级.没有必要死记硬背这张表,代码见多了用多了就慢慢记得了.总结几个比较重要的原则: 取成员的"0"目运算符[() . -> []]优先级最高: 单目运算符高于双目运算符: 四则运算高于移位运算: 移位运算高于比较运算

C语言:数据类型、运算符、表达式

.:.:第二章:数据类型.运算符.表达式:.:. 第二章: 数据类型.运算符.表达式 C语言的数据类型 在第一课中,我们已经看到程序中使用的各种变量都应预先加以说明,即先说明,后使用.对变量的说明可以包括三个方面:·数据类型·存储类型·作用域 在本课中,我们只介绍数据类型说明.其它说明在以后各章中陆续介绍.所谓数据类型是按被说明量的性质,表示形式,占据存储空间的多少,构造特点来划分的.在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类. 1.基本数据类型 基本数据类型