c的详细学习(2)数据类型,运算符与表达式
本节用来介绍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的比较:
- #include<stdio.h>
- int main(){
- float a;
- double b;
- a=1234.111111;
- b=1234.111111;
- printf("a=%f\nb=%f\n",a,b);
- }
由此看出,由于float型变量a只能接受7位有效数字,因此最后三位是不准确的,但double型数字是可以全部接受10位有效数字的。
(4)常用转义字符:
- (\ 空字符 )
- (\t 水平制表,跳到下一个Tab位置 )
- (\r 回车,将当前位置移到本行的开头 )
- (\n 换行,将当前位置移到下一行的开头 )
- (\' 双撇号 34),(\"" 单撇号 39)
- #include<stdio.h>
- int main(){
- printf("c\tlanguages\be\rC\n");
- printf("is\tusef\165\x6c\n");
- return ;
- }
\165中165是8进制数,转换为十进制数ASCII码为117,’\165‘表示字符'u'。
无论字符变量还是字符常量,在内存中都只占一个字节,用来存放一个字符。字符在内存中是以ASCII码来进行存储的。字符型数字既可以用整数形式输出也可以用字符格式输出。
(5)运算符和表达式:
5.1逗号运算符
- #include<stdio.h>
- int main(){
- int m=,n=;
- int a;
- a=(m+n,m-n);
- printf("a的值为%d,表达式的值为%d\n",a,a=(m+n,m-n));
- a=m+n,m-n;
- printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n));
- a=m+n,m-n+a;
- printf("a的值为%d,表达式的值为%d\n",a,(a=m+n,m-n+a));
- printf("");
- return ;
- }
5.2强制类型转换
对变量进行强制类型转换时,只能得到一个中间值,并不改变该变量原有的类型。
- #include<stdio.h>
- int main(){
- double y=7.56;
- int a=,b;
- b=(int)y%a;
- printf("b=%d,",b);
- printf("y=%f\n",y);
- return ;
- }
强制类型转换运算符的优先级高于取余运算符。
5.3自增运算和自减运算
自增运算符和自减运算符是c语言特有的单目运算符,他们只能和一个单独的变量组成表达式。
x++和++x的相同之处是:单独作为一个表达式语句被使用时,无论执行了哪一种表达式,执行结束后x的值都加1.
x++和++x的不同之处是:当他们出现在其他表达式中时,也就是说作为其他表达式的一部分时,两个表达式的结果是不一样的。++x的值等于原值+1,x++的值等于x的原值。
5.4位运算
c语言是为开发系统软件而设计的,因此它提供了操作二进制数的功能,这些功能通常只有汇编语言才具有。
应用举例:
- #include<stdio.h>
- int main(){
- unsigned int A=0xb3,B=0x9a;
- printf("~A=%x\n",~A);
- printf("A&B=%x\n",A&B);
- printf("A|B=%x\n",A|B);
- printf("A^B=%x\n",A^B);
- A=;B=;
- printf("A<<1=%u\n",A<<);
- printf("A>>1=%u\n",B>>);
- return ;
- }
运行结果如下:(分别为取反,与,或,异或,右移与左移)
c的详细学习(2)数据类型,运算符与表达式的更多相关文章
- java与.net比较学习系列(4) 运算符和表达式
上一篇总结了java的数据类型,得到了冰麟轻武等兄弟的支持,他们提出并补充了非常好的建议,在这里向他们表示感谢.在后面的文章中,我会尽力写得更准确和更完善的,加油! 另外,因为C#是在java之后,也 ...
- JS基础-数据类型-运算符和表达式-变量和常量
1.js的基础语法2.js调试 1.F12调出控制台,查看提示错误及其位置. 2.出错时只影响当前代码块,不会影响其他代码块,后续代码块继续执行.3.语法规范 1.js语句:可执行的最小单元 必须以 ...
- 03-java学习-基本数据类型-运算符-键盘接收用户输入
java的八大基本数据类型: 类型转换的基本原则: java整数的默认类型是int,小数的默认类型是double 运算符: 算术运算符.连接.赋值.关系.逻辑.三目运算符等…… 键盘接收用户输入: j ...
- Python学习笔记----数据类型 运算符 循环 条件判断
1. Python安装 在官网www.python.org下载安装程序,可以支持的操作系统linux,windows,mac. Python版本:2.x和3.x,分别有x86和x64. 在Window ...
- C语言学习笔记二---数据类型运算符与表达式
一.C的基本语法单位 1.标识符:有效长度:31(DOS环境下) 2.关键字:main不是 3.分隔符:空格符,制表符,换行符,换页符 4.注释符:a./*.....*/ b.// 二.C的常用输 ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- Objective-C中的数据类型、常量、变量、运算符与表达式
1.Objective-C中的数据类型: Objective-C中的基本数据类型有:int.char(-128-127).float.double.BOOL,Byte(0-255) Id类型相当于(等 ...
- JavaSE| 数据类型| 运算符| 进制与补码反码等
JavaSE JavaSE是学习JavaWeb.JavaEE以及Android开发的基础 边听边思考边做“笔记” 不要完全依赖书和视频: 捷径:敲.狂敲: 规范:加注释: 难点,不懂的记录下时间再回头 ...
- js学习之数据类型
js学习之数据类型 基础类型:number string boolean null undefined 引用类型:object array function undefined值是派生自null值的( ...
随机推荐
- 51单片机 | 并行I/O口扩展实例(74LS244/74LS373/4071)
并行I/O口扩展实例 //<51单片机原理及应用(第二版)——基于Keil C与Proteus>第四章例4.4 I/O口不能完全用于输入/输出操作,当需要扩展外部存储器时,P0.P2口用作 ...
- Volatile 多线程中用到的关键字
前言 不管是在面试还是实际开发中 volatile 都是一个应该掌握的技能. 首先来看看为什么会出现这个关键字. 内存可见性 由于 Java 内存模型(JMM)规定,所有的变量都存放在主内存中,而每个 ...
- prometheus监控方案
简介 prometheus 是一个开源的系统监控和告警的工具包,其采用pull方式采集时间序列,通过http协议传输. 架构 每个应用都通过javaagent向外提供一个http服务暴露出自己的JMX ...
- 常用PhpStorm 快捷键
函数列表 打开某一个源码文件后,保证鼠标焦点在源文件内,按键盘组合键: alt + 7 返回原文件导航:双击最上面的工程名即可 PhpStorm折叠文件内所有函数 按下快捷`Ctrl`+`Shift` ...
- 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 ...
- Java线程—-Runnable和Callable的区别和联系
Java 提供了三种创建线程的方法 1.继承Thread接口 public class Thread2Thread { public static void main(String[] args) { ...
- ubuntu下搭建的lamp环境新建站点
这几天刚装了一个ubuntu 16.04桌面版,总之来来回回几遍才基本把环境搭建好,本来用apt-get搭建,结果不知道什么原因16.04版不支持装php5 ,提示源放弃了php5版本,不得不使用ph ...
- 创建有提示的ui组件
using UnityEditor; using UnityEngine; using System.Collections; using Edelweiss.CloudSystem; namespa ...
- HTTP/HLS/RTMP超级负载测试工具(转)
这个负载测试工具是网游分享的工具,可以在http://blog.csdn.net/win_lin/article/details/11835011 或者https://github.com/winli ...
- Pycharm 中错误ImportError: No module named appium
Q: Pycharm 中错误ImportError: No module named appium A: Pycharm IDE Preferences -> Project Interpret ...