1、注释符号                           //和/* ...*/

2、续行符号                              \

3、转义符号                          常用:\r 和 \n 等

4、单引号      ‘    括起来的一个字符代表整数

5、双引号      “     括起来的字符代表一个指针

单引号 ‘ 括起来的一个字符代表整数,双引号 “ 括起来的字符代表一个指针。所以虽然C编译器接受字符和字符串的比较,可意义是错误的,C编译器允许字符串对字符变量赋值,其意义是可笑的。

6、逻辑运算符:&&    ||    !

(1)逻辑与 && 和逻辑或 || 在程序中的短路规则:

&& 从左向右开始计算,当遇到为假的条件时停止计算,整个表达式为假,所有条件为真时表达式才为真。

||  从左向右开始计算,当遇到为真的条件时停止计算,整个表达式为真,所有条件为假时表达式才为假。

经典案例,如下所示,打印结果为1,0。如果将第六行改为 if(++i>0 && ++j>0)打印结果1,1。

#include

int main()

{

;

;

|| ++j > )

{

printf("%d\n", i);

printf("%d\n", j);

}

;

}

(2)逻辑非

!0 = 1      !1 = 0      !100 = 0      !-1000 = 0

7、三目运算符         (a?b:c)

(1)三目运算符可以看做是逻辑运算符的载体

(2)规则:当a为真的时候,返回b的值,否则,返回c的值。

8、位运算符            &      |      ^      ~      <>

按位与,按位或,按位异或,按位取反,左移,右移是位运算中常用的符号。

左移:高位丢弃,低位补0。

右移:低位丢弃,高位补符号位。(注意高位不是补0)

void test(void)

{

;

a=a>>;

printf("%d\n",a); //结果:-1

}

void test1(void)

{

;

a=a>>;

printf("%d\n",a); //结果:1

}

小技巧:左移n位相当于乘以2的n次方,但效率比数学运算符高。右移n位相当于除以2的n次方,但效率比数学运算符高。

异或:异或是一个很强大的符号,之前交换两个数的位置就见识到了。此外,异或满足交换律和结合律,具体实例见如下面试题。

面试题:有一个数列,其中的自然数的个数都是以偶数的形式出现,只有一个自然数出现的次数为奇数次,编写程序找出这个自然数。

算法1:遍历数组,找单数。这种方法是最容易考虑到的的方法,但是耗时间也耗空间。

算法2:针对异或满足交换律和结合律,用异或的方法,既省时间,又省空间。代码如下,宏 DIM(a) 用来计算数组长度,其中 sizeof(a) 表示 a数组占的字节数,sizeof(*a) 就是相当于a[0]占的字节数。

#include

#define DIM(a) (sizeof(a)/sizeof(*a))

int main()

{

,,,,,,,,,,,,};

;

;

;i

{

find = find^str[i];

}

printf("%d\n",find);

;

}

9、++    --

表达式 ++ 和 -- 的阅读技巧,贪心法:从左到右尽可能多的包含字符。因为编译器是从左向右的顺序一个一个的尽可能多的读入字符,一直到即将读入的字符不可能和已读入的字符组成合法符号为止。

#include

void test(void);

void test2(void);

void test3(void);

void test4(void); //补充:逗号运算符

int main()

{

test();

;

}

/************************************************************************

C语言的灰色地带,由编译器决定,如果先算括号,那就是6+6+6=18;

如果前面两次加之后,在+(++i),结果就是16--本编译器(Dev-C++)就是这样弄的

************************************************************************/

void test(void)

{

,j;

j=(++i) + (++i) +(++i);

printf("%d\n",j); //结果为16

}

#if 0

//将test中的 j=(++i) + (++i) +(++i);括号去掉分析--报错

void test2(void)

{

,j;

j = ++i+++i+++i;

//分析--贪心法:从左到右尽可能多的包含字符: 前面一部分等价于:(++i)++ 相当于1++,一个数值++,就会报错 。

//用 j=++i++;和1++;编译出错的结果是一样的,所以这样理解是对的。

printf("%d\n",j);

}

#endif

void test3(void)

{

;

;

int c;

c=a+++b; //贪心法

printf("%d\n",a); //结果为2

printf("%d\n",c); //结果为2

}

//逗号运算符规则,从左到右顺序求值,最后一个表达式的值就是逗号表达式的值。

void test4(void)

{

int x;

;

x=(++i,i++,i+);

printf("%d\n",x); //结果为15

}

10、##,#@,#

(1)##  连接符号

用法例举:#define Connect(x,y) x##y

int val = Connect(0x12,45);                  / /结果就是val =1245;

char* str = Connect("abcd","efg");     / /结果就是 str = "abcdefg"

在C编译器(比如Cfree,DevC++都无法编译运行),但是在KeilC51可以正常运行使用。

(2)#@  给字符加单引号

用法例举:#define ToChar(x) #@x

char a = ToChar(1); 结果就是 a='1';

在C编译器(比如Cfree,DevC++)和KeilC51都无法编译通过。

(3)#  给字符串加双引号

用法例举:#define ToString(x) #x

char* str = ToString(Hello);  结果就是 str="Hello";

在C编译器(比如Cfree,DevC++)和KeilC51可以正常运行使用。

11、

【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】

原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创]   第一题 #include int main() { unsigned int a=6; i ...

《C语言深度剖析》学习笔记----C语言中的符号

本节主要讲C语言中的各种符号,包括注释符.单引号双信号以及逻辑运算符等. 一.注释符 注释符号和注释在程序的预编译期就已经被解决了,在预编译期间,编译器会将注释符号和注释符号之间的部分简单的替换成为空 ...

C语言中 有符号数、无符号数、整数溢出 (转)

#include void main() { int l=-1; unsigned int c=135; printf("%u\n",l+c); } ...

c&sol;c&plus;&plus;排坑&lpar;2&rpar; -- c语言中的符号重载

所谓的符号重载就是在不同的上下文环境里有不同的意义.甚至有些关键字也被重载而具有好几种意义,这也是C语言的作用域规则对程序员不那么清晰的主要原因. 本章内容摘自P37. 大家 ...

【转】C语言中的符号优先级

转自: http://blog.csdn.net/huangblog/article/details/8271791 虽然在日常使用中,添加括号来明确规定运算符优先级是一种常识,但毕竟学校考试就喜欢考 ...

C语言中无符号与有符号问题

unsigned char a[5] = { 12,36,96,128,182 }; a[]范围为0~256. 数组中数都有效. char a[5] = { 12,36,96,128,182 }; a ...

C语言中的强符号与弱符号

转自:http://blog.csdn.net/astrotycoon/article/details/8008629 一.概述 在C语言中,函数和初始化的全局变量(包括显示初始化为0)是强符号,未初 ...

浅谈C语言中的强符号、弱符号、强引用和弱引用

摘自http://www.jb51.net/article/56924.htm 浅谈C语言中的强符号.弱符号.强引用和弱引用 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2014- ...

C语言中无符号数和有符号数之间的运算

C语言中无符号数和有符号数之间的运算 C语言中有符号数和无符号数进行运算(包括逻辑运算和算术运算)默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了. un ...

随机推荐

CentOS 6&period;5 升级 GCC 4&period;9&period;3

1. GUN官网下载源代码安装包: gcc-4.9.3.tar.gz 2. 解压安装包,并进入解压后的文件夹: tar -zxvf gcc-4.9.3.tar.gz 3. 使用压缩包中的工具下载依赖: ...

字符串—strcpy

来自——百度百科   原型声明:char *strcpy(char* dest, const char *src); 头文件:#include 和 #include ...

isEmpty与null、&quot&semi;&quot&semi;的区别

前一段时间我阅读别人的代码,发现有的时候用isEmpty,有的时候用null,有的时候用"".我很困惑三者之间的区别,于是我就自己写了一个程序来验证一下 public class ...

Xcode6无法用xib得问题解决方法

1.创建一个新工程,选择singleView application 2.将storyboard和launchscreen删除,选择moveToTrash 3.删除info.plist文件中Main ...

2017-2-17 c&num;基础学习 (控制台程序的创建,输出,输入,定义变量,变量赋值,值覆盖,值拼接,值打印)

1 控制台程序的创建 > 新建项目  ,选择 c#,  框架选择4.0 , 选择控制应用台程序, 选择文件保存位置 修改名字. 2 c#输出与输入 >在main函数中编写代码 >在编 ...

【算法系列学习】DP和滚动数组 &lbrack;kuangbin带你飞&rsqb;专题十二 基础DP1 A - Max Sum Plus Plus

A - Max Sum Plus Plus https://vjudge.net/contest/68966#problem/A http://www.cnblogs.com/kuangbin/arc ...

java中集合的组成及特点

1:集合 Collection(单列集合) List(有序,可重复) ArrayList 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector 底层数据结构是数组,查询快,增删慢 线程 ...

Jason 和 Java 对象转化示例

1.工程 2.代码: JsonUtil.java package com.my.json; import java.util.ArrayList; import java.util.List; imp ...

Ubuntu12&period;04下Qt连接MySQL数据库

本文介绍在Ubuntu12.04 (64 bit) 下使用Qt 4.8.2连接MySQL(Ver 14.14 Distrib 5.5.43)数据库. 1.安装 Qt 和 MySQL 若未安装以上软件, ...

oracle中循环读出一个表的信息插入到另外一个表中

declare cursor TAGENTMENUd is select * from TAGENTMENU where 1=1; -- 获取游标begin --遍历查询出的表 (注意 tn是整条记录 ...

c语言中各个符号的含义总结,C语言中的符号总结相关推荐

  1. 全原子力场中各参数的含义及其在LAMMPS中的应用

    全原子力场中各参数的含义及其在LAMMPS中的应用 OPLSAA力场参数是分子动力学中广泛应用的力场.但有些同学对力场中的参数含义不是很了解.下面就OPLSAA力场参数如何应用于LAMMPS做一个简单 ...

  2. 科研中论文常见数学符号及其含义(科研必备,建议收藏)

    论文常见数学符号及其含义(科研必备) 返回论文和资料目录 数学符号在数学领域是非常重要的.在论文中,使用数学符号可以使得论文更加简洁明了,同时也能够准确地描述各种概念和理论.在本篇博客中,我将介绍一些 ...

  3. VC/MFC中常用宏的含义

    VC/MFC中常用宏的含义 Visual C++ MFC 中常用宏的含义(转载)     AND_CATCHAND_CATCH AND_CATCH(exception_class,exception ...

  4. oracle数据存储过程 中的循环 for 拼接字符串,oracle存储过程中使用字符串拼接

    1.使用拼接符号"||" v_sql := 'SELECT * FROM UserInfo WHERE ISDELETED = 0 AND ACCOUNT =''' || vAcc ...

  5. c语言中体积用什么字母表示,C语言中求圆柱体体积符号

    数学中求模如何定义?对比求模,C语言中计算符号"%"是否与其意义相当? 数学中模这个字被用于很多个不同领域(但是意义不同)一.C语言中的计算符号%,这个求模在数学中是指属于数论内容 ...

  6. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解、使用gtExtras包添加一个图,显示表中某一列中的数字、并为类型数据添加图像符号标签

    R语言使用gt包和gtExtras包优雅地.漂亮地显示表格数据:使用gt包可视化表格数据,使其易于阅读和理解.使用gtExtras包添加一个图,显示表中某一列中的数字.并为类型数据添加图像符号标签 目 ...

  7. Halcon—Tuple中符号的含义

    2014年08月08日 21:20:30 阅读数:5429 实例一(3d_coordinates.hdev): for I := 1 to NumImages by 1 read_image (Ima ...

  8. c语言中的运算符及其含义_按位运算符及其在C语言中与Example一起使用

    c语言中的运算符及其含义 1)&(按位与) (1) & (bitwise AND)) It does AND on every bit of two numbers. The resu ...

  9. Machine Learning课程中的常见符号的含义

    1 前言 本文归纳了一下 Machine Learning课程中的常见符号的含义. 2 常见符号的含义 m:表示样本的数量.例如:以学生成绩作为样本,共有四个学生的成绩,则m=4.

  10. c语言符号错误怎么避免,C语言中常见符号问题探析

    摘 要:C语言是应用最广的高级程序设计语言,其语法灵活,使用便捷.文章在Turbo C环境下,提出几种常见的编译系统纠错无法判断的问题,分析了几种运算符.语句结束符和ELSE等,并通过案例来比较分析程 ...

最新文章

  1. “大众搬家”何其多啊?[3/14/2007 update]
  2. linux在屏幕上显示问候信息,linux系统版本查看
  3. linux系列之-—04 自动删除n天前日志【转】
  4. Hyper-V 虚拟机快照:常见问题
  5. 樊昌信版通信原理期末复习第一章绪论
  6. LINQ TO SQL (一):1. 对象关系设计器(O/R 设计器)
  7. python绘制3d坐标轴_matplotlib在python上绘制3D散点图实例详解
  8. php mb strlen 开启,php mb_strlen是什么函数
  9. 用python计算ph_用于水和水蒸汽物性计算的Python模块——iapws
  10. MySQL 计算年龄
  11. rmvb 转 avi 方法
  12. Thinkpad部分软件相关服务进程的总结
  13. CollectionUtils取交集,并集和差集
  14. 【原创】在winform程序中实现在IE浏览器中打开一个新的页面,全屏化并屏蔽IE窗口的工具栏和地址栏
  15. AES加密 + Base64编码
  16. 顶级二级三级域名的区别
  17. 【杂记】如何利用Python3+you-get快速的下载B站的视频(尤其是多P的教程类视频)
  18. 软妹子之心,智能硬汉子们可懂?
  19. 成长,必是经历痛苦的过程
  20. nofollow是什么意思?nofollow标签的写法和作用

热门文章

  1. cpp读取分数并进行求和化简
  2. 为什么哪些90后程序员年薪50万+,他们经历了啥?
  3. 【领英如何一键批量有效地加好友?】
  4. DREAD风险评估模型
  5. python 读取地震道头数据_[宜配屋]听图阁
  6. 系统分析师成长之路 转
  7. 学习java技术能干什么工作
  8. 黑马程序员Mybatis
  9. Android开发面试简历
  10. 王者荣耀李白王昭君情侣头像故事: “风雨如晦,鸡鸣不已。既见君子,云胡不喜。”...