2.1 变量名
(1) 大小写敏感,小写一般做变量,大写做符号常量(symbolic constant)
(2) 以字母和_开头,有些类库用了"_"

2.2 数据类型和长度
(1) char       //一般一个字节,8位
unsigned char  (0~255)        signed char (-128~127) 
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int main(int argc, char** argv) {
      printf("char_bit = %d\n", CHAR_BIT);
      printf("char_min = %d, char_max = %d\n", CHAR_MIN, CHAR_MAX);
      printf("signed_char_min = %d, signed_char_max = %d\n", SCHAR_MIN, SCHAR_MAX);
      printf("unsigned_char_min = %d, unsigned_char_max = %d\n", 0, UCHAR_MAX);
      return (EXIT_SUCCESS);
}
(2) int
short  (int 16 bits) <= int <= long (int  32 bits)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int main(int argc, char** argv) {
        printf("short_min = %d, short_max = %d\n", SHRT_MIN, SHRT_MAX);
        printf("int_min = %d, int_max = %d\n", INT_MIN, INT_MAX);
        printf("long_min = %d, long_max = %d\n", LONG_MIN, LONG_MAX);
        return (EXIT_SUCCESS);
}
缺省情况下是signed, 如unsigned short (0~65535)   signed short (-32768 ~ 32767)
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

int main(int argc, char** argv) {
        printf("unsigned_short_max = %u\n", USHRT_MAX);
        printf("unsigned_int_max = %u\n", UINT_MAX);
        printf("unsigned_long_max = %u\n", ULONG_MAX); //注意%ud,u表示unsigned
        return (EXIT_SUCCESS);
}

(3)  float (single-precision floating point), double, long double
IEEE-754 
          float (4 bytes) or double (8 bytes)
seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
s = sign bit, e = exponent, m = mantissa
          N = mantissa * (2 ^  x),  x 是指数
#include <stdio.h>
#include <stdlib.h>
#include <float.h>

int main(int argc, char** argv) {
      printf("float: decimal digits of precision: %d\n", FLT_DIG);
      printf("float: number of base FLT_RADIX digits in mantissa: %d\n", FLT_MANT_DIG);
      printf("float: min_float = %e, max_float = %e\n", FLT_MIN, FLT_MAX);
      printf("======================================\n");
      printf("double: decimal digits of precision: %d\n", DBL_DIG);
      printf("double: number of base FLT_RADIX digits in mantissa: %d\n", DBL_MANT_DIG);
      printf("double: min_double = %e, max_double = %e\n", DBL_MIN, DBL_MAX);
      return (EXIT_SUCCESS);
}
(4)  长度范围等可查看头文件 <limits.h> <float.h>中,依赖于不同的机器

2.3 常量
(1) 一般常量
int: 1234,31 = 037 = 0x1f = 0X1F //八进制 或者 16进制
long: 123456789L    usigned long: 123456789UL
double: 123.4, 1e-2,  当末尾加f或者F时,表明是float
(2) 字符常量
'0' == 48
'\0' == 0
'\ooo'  //八进制   #define VTAB '\013'    //#define  BELL  '\007'
'\xhh'  //16进制    #define VTAB '\xb'      //#define BELL '\x7'
\a  alert (bell)
\b  backspace
\f   formfeed
\n  newline
\r   carriage return
\t   horizontal tab
\v  vertical tab
\\   backslash
\?   question mark
\'    single quote
\"   double quote
(3) 表达式常量
#define MAXLINE 1000
char line[MAXLINE + 1];
#define LEAP 1  //leap year 闰年
int days[31+28+LEAP+31+30+31+30+31+31+30+31+30+31];
(4) 字符串常量
"I am a string" //字符串实质上是字符数组,以'\0'结尾
""   //空字符串 
" " //空格 字符串 
区分 'x' 和 "x"
'x' 是字符,本质上整型
"x"是字符串,以'\0'结尾
<string.h> 中 strlen(s) 求字符串的长度,不包括'\0'
(5) enumeration constant
enum boolean {NO, YES};  //第一个为0, 下一个为1, 依次增长
enum escapes {BELL = '\a', BACKSPACE = '\b', TAB = '\t',
NEWLINE = '\n', VTAB = '\v', RETURN = '\r'};
enum months {JAN = 1, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC}; //从1开始增长

2.4 变量声明与初始化
(1)   变量声明
所有变量在使用之前必须先声明
char c, line[100]; 
char c;
char line[100];
(2)   变量初始化
float eps = 1.0e-5;
const double e = 2.71828182845905;
const char msg[] = "hello world!"; // const 表明该数组内的字符不可改
 
int strlen(const char[]);

2.5 数学运算符
+   -   *   /    %
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
                printf("%d is a leap year \n", year);
        else printf("%d is not a leap year \n", year);

2.6 关系运算符和逻辑运算符
(1) 关系运算符
>    >=    <    <=
==    !=
关系运算符的优先级 低于 数序运算符,即  i < lim -1  等同于 i < (lim -1)
(2) 逻辑运算符 &&  ||  !
从左到右,evaluation stops as soon as the truth or false of the result is known.
      for( i = 0; i < lim -1 && (c = getchar()) != '\n'  && c != EOF; ++i )
             s[i] = c;
逻辑表达式 真为1,假为0
!取反

转载于:https://blog.51cto.com/amao99/216230

CH2-1 类型 操作 表达式相关推荐

  1. redis 的使用 (sort set排序集合类型操作)

    sort set排序集合类型 释义: sort set 是 string 类型的集合 sort set 的每个元素 都会关联一个 权 通过 权值 可以有序的获取集合中的元素 应用场合: 获取热门帖子( ...

  2. C++内存模型和原子类型操作

    C++内存模型和原子类型操作 std::memory_order初探 动态内存模型可以理解为存储一致性模型,主要是从行为上来看多个线程对同一个对象读写操作时所做的约束,动态内存理解起来会有少许复杂,涉 ...

  3. BOOST使用 proto 转换进行任意类型操作的简单示例

    BOOST使用 proto 转换进行任意类型操作的简单示例 实现功能 C++实现代码 实现功能 BOOST使用 proto 转换进行任意类型操作的简单示例 C++实现代码 #include <i ...

  4. 【C++】error C2275 “XXXX” 将此类型用作表达式非法

    00. 目录 文章目录 00. 目录 01. 问题描述 02. 问题分析 03. 问题解决 04. 附录 01. 问题描述 在移植c++代码到c的时候,经常会出现一个奇怪的错误:"error ...

  5. MVC 无法将带 [] 的索引应用于“System.Dynamic.DynamicObject”类型的表达式

    无法将带 [] 的索引应用于"System.Dynamic.DynamicObject"类型的表达式 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以 ...

  6. mysql binary模式_MySQL数据库之MySQL的binary类型操作

    本文主要向大家介绍了MySQL数据库之MySQL的binary类型操作 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 示例数据表: CREATE TABLE test_bin  ...

  7. c语言中3%3e2%3e1的值,C语言--ch2--数据类型和表达式.ppt

    C语言--ch2--数据类型和表达式 第二章 数据类型和表达式 2.1 数据类型 在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类. 其中基本数据类型可分为: 整型:整数 ...

  8. 第5章 C++内存模型和原子类型操作

    第5章 C++内存模型和原子类型操作 本章主要内容 ※ C++11内存模型详解 ※ 标准库提供的原子类型 使用各种原子类型 ※ 原子操作实现线程同步功能 C++11标准中,有一个十分重要特性,常被程序 ...

  9. error C2275 将此类型用作表达式非法

    error C2275 将此类型用作表达式非法 标签: cstring编译器gcc编程百度 2012-03-24 00:46 32316人阅读 评论(18) 收藏 举报  分类: DEBUG(22)  ...

最新文章

  1. JavaScript 中的return true 和return false
  2. servlet文件上传blob_servlet实现从oracle数据库的blob字段中读出文件并显示 | 学步园...
  3. Win32汇编获取和设置文本框的内容
  4. 【控制】多智能体系统总结。1. 系统模型。2.控制目标。3.模型转换。
  5. 卓京计算机学校,卓京--计算机数据原理课程设计任务书.doc
  6. Streamlit —使用数据应用程序更好地测试模型
  7. plc有与计算机的通讯请求时,OMRON PLC网络Ethernet网_OMRON PLC与上位计算机之间的通信_OMRON PLC与上位计算机通信程序-维库电子通...
  8. 20160809下午14:00公司断网处理过程(网络架构VSS模式)
  9. ES11新特性_String.prototype.matchAll方法---JavaScript_ECMAScript_ES6-ES11新特性工作笔记063
  10. 中国结算-金融机构服务平台(FISP平台)
  11. PDG转PDF注定会文件膨胀、质量下降吗?
  12. win10 pro 永久激活
  13. django.db.migrations.exceptions.BadMigrationError: Migration urls in app book has no Migration class
  14. 如何使用KMS激活win10和office
  15. php去掉notice错误,学习猿地-php怎么关闭notice级别的错误提示?
  16. 2022-2028全球气动吸尘器行业调研及趋势分析报告
  17. 高防cdn是什么,高防cdn跟加速cdn有什么区别
  18. fabric cello
  19. [研究方向]什么是深度学习?它到底有多火?
  20. 安卓还是鸿蒙,SaaS应用移动化靠谁?

热门文章

  1. 北斗导航 | GNSS技术在自动驾驶中的作用
  2. Qt学习(二):菜单栏、工具栏和对话框
  3. java的求和函数_Java Stream流之求和的实现
  4. MySQL 笔记5 -- 多表查询
  5. 工业用微型计算机(7)-指令系统(4)
  6. 【Python】20个小技巧,让数据可视化图表更专业!
  7. 【NLP】词嵌入基础和Word2vec
  8. 【Python】pandas 1.3版本主要更新内容一览
  9. 【NLP】含10,000 Python问题,伯克利联合团队推出新的代码生成评价基准
  10. 【机器学习基础】线性回归和梯度下降的初学者教程