本节用来介绍c语言中的数据类型和运算符。

    (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)常用转义字符:

  1. \ 空字符
  2. \t 水平制表,跳到下一个Tab位置
  3. \r 回车,将当前位置移到本行的开头
  4. \n 换行,将当前位置移到下一行的开头
  5. \' 双撇号 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 ;
  7. }

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

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

    (5)运算符和表达式:

5.1逗号运算符

  1. #include<stdio.h>
  2.  
  3. int main(){
  4. int m=,n=;
  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 ;
  14. }

5.2强制类型转换

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

  1. #include<stdio.h>
  2.  
  3. int main(){
  4. double y=7.56;
  5. int a=,b;
  6. b=(int)y%a;
  7. printf("b=%d,",b);
  8. printf("y=%f\n",y);
  9. return ;
  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=;B=;
  10. printf("A<<1=%u\n",A<<);
  11. printf("A>>1=%u\n",B>>);
  12. return ;
  13. }

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

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

  1. java与.net比较学习系列(4) 运算符和表达式

    上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...

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

    1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...

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

    java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: j ...

  4. Python学习笔记----数据类型 运算符 循环 条件判断

    1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...

  5. C语言学习笔记二---数据类型运算符与表达式

    一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/   b.// 二.C的常用输 ...

  6. 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式

    本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式

  7. Objective-C中的数据类型、常量、变量、运算符与表达式

    1.Objective-C中的数据类型: Objective-C中的基本数据类型有:int.char(-128-127).float.double.BOOL,Byte(0-255) Id类型相当于(等 ...

  8. JavaSE| 数据类型| 运算符| 进制与补码反码等

    JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...

  9. js学习之数据类型

    js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...

随机推荐

  1. 51单片机 | 并行I/O口扩展实例(74LS244/74LS373/4071)

    并行I/O口扩展实例 //<51单片机原理及应用(第二版)——基于Keil C与Proteus>第四章例4.4 I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0.P2口用作 ...

  2. Volatile 多线程中用到的关键字

    前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现这个关键字. 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个 ...

  3. prometheus监控方案

    简介 prometheus 是一个开源的系统监控和告警的工具包,其采用pull方式采集时间序列,通过http协议传输. 架构 每个应用都通过javaagent向外提供一个http服务暴露出自己的JMX ...

  4. 常用PhpStorm 快捷键

    函数列表 打开某一个源码文件后,保证鼠标焦点在源文件内,按键盘组合键: alt + 7 返回原文件导航:双击最上面的工程名即可 PhpStorm折叠文件内所有函数 按下快捷`Ctrl`+`Shift` ...

  5. ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS >= 3.26 is required

    Linux Ubuntu 1604安装VS CODE之后,执行./code报错误: [3781:0914/160851.489979:FATAL:nss_util.cc(632)] NSS_Versi ...

  6. Java线程—-Runnable和Callable的区别和联系

    Java 提供了三种创建线程的方法 1.继承Thread接口 public class Thread2Thread { public static void main(String[] args) { ...

  7. ubuntu下搭建的lamp环境新建站点

    这几天刚装了一个ubuntu 16.04桌面版,总之来来回回几遍才基本把环境搭建好,本来用apt-get搭建,结果不知道什么原因16.04版不支持装php5 ,提示源放弃了php5版本,不得不使用ph ...

  8. 创建有提示的ui组件

    using UnityEditor; using UnityEngine; using System.Collections; using Edelweiss.CloudSystem; namespa ...

  9. HTTP/HLS/RTMP超级负载测试工具(转)

    这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winli ...

  10. Pycharm 中错误ImportError: No module named appium

    Q: Pycharm 中错误ImportError: No module named appium A: Pycharm IDE Preferences -> Project Interpret ...