c语言知识点整理-1

简单的把我最近两周学习的嵌入式c语言基础编程32个知识点串联下,能举例子体会的我不会啰嗦的,直接干货。不清楚的可以留言或者是自己查询资料。
1.gcc的使用
xx.c源文件
gcc xx。c 默认生成a.out
gcc xxc -o xx
.xx执行可执行文件


2.数据类型(在32位机)
字符型char--1个字节
短整型short--2个字节
整型int--4个字节
长整型long--4个字节
单精度float--4个字节
双精度double--8个字节


3.变量的定义和初始化
数据类型+变量名
字符类型注意使用‘’


标识符的命名规范
使用英文,禁止拼音
驼峰命名法,下划线
顾名思义
注意使用驼峰命名法,不能使用拼音代替,见名思意。
最后一点不能和关键字重复。
c语言简洁,紧凑,适应方便,灵活,ANSI C一共只有32个关键字:
auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,of,int,long,register,return,short,signed,static,sizeof,struct,switch,typedef,union,unsigned,void,volatile,while。

这里再次提下c语言词汇概念。
分为六类。
1.标识符:在程序中使用的变量名,函数名,标号等统称为标识符。规定只能是数字字母和下划线组成的字符串,并且第一个必须是字母或者是下划线。
2.关键字:c语言本身定义的特定的字符串,也称保留字,
3.运算符。
4.分隔符:逗号和分号。
5.常量。
6.注释符:/* */


5.十进制转换成二进制,
十六进制,八进制,转换。
求余%。

进制。
十进制:数码0-9.例:234,-545.
八进制:数码0-7.必须零开头,015(十进制13),0101(十进制65)
十六进制:数码0-9.a-f或A-F。前缀为0x。0xa0(十进制160),0x2a(十进制42)。


6.原码,补码,反码
定义int 类型 -10.
数值一补码表示;
原码:000000000001010
正数的补码和原码相同。
负数的补码将绝对的二进制形式按位取反加一,
取反:1111111111110101
+1得到-10的补码:
1111111111110110
由此可知左边的第一位是表示符号的。


7.return代表函数结束,void类型的函数,可以没有返回值。

常用转义符。

\n 回车,ASCII代码10.
\t 横向调到下一制表位置,ASCII代码9
\b 退格,ASCII代码8
\r 回车,ASCII代码13
\f 走纸换页,ASCII代码12
\ 反斜杠\ ASCII代码92
\’ 单引号符ASCII代码39
\” 双引号符ASCII代码34
\a 鸣铃ASCII代码7


8.大端小高,小端小低,

变量数据类型转换,
自动转换,
char,short--->unsigned-->long--->double--->float
遵循右边类型转换左边的类型。
强转换
一般形式;(类型说明符)(表达式)
(int)(x+y)

8-1 重要的运算符,共十种
1.算术运算符,
+加.-减.乘./除.%求余。自加++,自减--。七种
2.关系运算符,
用于比较运算,大于>小于<等于==大于等于>=小于等于<=不等于!=六种
3.逻辑运算符
用于逻辑运算,与&&,或||,非!。三种
4.位操作运算符,
参与运算的量,按照二进制运算,位与&,位或|,位非~,位异^, 左移<<,右移>>.六种
有人会说,位运算没有什么实际意义啊。用于优化,以后再聊。
5.赋值运算符:
用于赋值运算,分为简单赋值=,复合算术赋值(+=,-=,
=,/=,%=),复合位运算符(&=,|=,^=,>>=,<<=)三类十一种。
6.条件运算符:
这是一个三目运算符,用于条件求值(?:)
7.逗号运算符;
用于把若干个表达式组合成一个表达式(,)
8.指针运算符:
用于取内容(*)和取地址(&)二种运算,
9.求字节运算符
用于计算数据类型所占字节(sizeof)
10.特殊运算符:
有括号(),下标[],成员(->,.)等几种。


8-2
运算优先级一共15种,1级最高,这里暂不列出最好的方法就是多看。
一般而言,单目运算符优先级较高,赋值运算符优先级较低,算数运算符优先级较高,关系个逻辑运算符优先等级较低,
若一个运算量两侧的运算符优先级相同时,则按照运算符的结合性质所规定的结合方向处理。

运算符的结合性,左结合性,右结合性要注意一些右结合性的,(自右往左)常见的赋值运算符=。x=y=z。是x=(y=z),c语言中有不少这种类型, 应当多注意区别,以免错误。 多数运算具有左结合性,单目,三目,运算符,赋值运算符具有右结合性。

最后一点简单看看
i++:参与运算后,再自加
i--:参与运算后,再自减
++i:先自加,再参与运算
--i:先自减,再参与运算
要看清,避免混淆。

22点下课,我该撤了,最近一直没怎么总结,总结一定是必须的,长得帅不帅都是先看脸。后面还有两三篇总结之后的24点。
谢谢大家的支持。

最后感受下位运算的优点

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。
110
AND 1011


0010 --> 2
有人会说,计算6 and 11没有什么实际意义啊。这一系列的文章就将告诉你,位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序。附上网址:
http://baike.baidu.com/view/379209.htm 还是比较全的。


例如: int i = 0x80000000; i = i >> 1; //i的值不会变成0x40000000,而会变成0xc0000000 就是说,对于有符号数, 符号位向右移动后,正数的话补0,负数补1, 对于有符号数,在右移时,符号位将随同移动: 当为正数时, 最高位补0, 而为负数时,符号位为1, 也就是汇编语言中的算术右移.同样当移动的位数超过类型的长度时,会取余数,然后移动余数个位. 最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。 负数10100110 >>5(假设字长为8位),则得到的是 11111101 总之,在C中,左移是逻辑/算术左移(两者完全相同),右移是算术右移,会保持符号位不变.实际应用中可以根据情况用左/右移做快速的乘/除运算,这样会比循环效
率高很多.
x>>1;//相当于x/=2

x<<1;//相当于x*=2

x>>2;//x/=4

x<<2;//x*=4

x>>3;//x/=8

x<<3;//x*=8

以此类推. 无符号:
main()

{

unsigneda,b;

printf("inputanumber:");

scanf
("%d",&a);

b=a>>5;

b=b&15;

printf
("a=%d\tb=%d\n",a,b);

}

请再看一例!
main()

{

chara='a',b='b';

int p,c,d;

p=a;

p=(p<<8)|b;

d=p&0xff;

c=(p&0xff00)>>8;

printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);

}

异或操作的妙用

  1. 使特定位翻转 要使哪几位翻转就将与其进行∧运算的该几位置为1即可。
    2 与0相∧,保留原值.
    3.交换两个值,不用临时变量. 我们可以在不用引入其他变量就可以实现变量值的交换 用异或操作可以实现

我的水平就看到这,咱们回聊。
byebye!!!

by 一个来自上嵌的娃。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 8,694评论 9 66
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 645评论 0 0
  • 这个是初始版本,还会进行改正和补充,请大家认真熟悉这些基础知识!如有错误,请在评论区留言@作者 总体上必须清楚的:...
    亦一银河阅读 2,490评论 3 40
  • 禅心不二参 心即是佛 一人去深山找禅师问道。 禅师问:“你到这儿来干什么?” 那人说:“我是来修佛的。” 禅师答:...
    徐不二阅读 1,028评论 0 0
  • 第五话 「阴云密布」 文:YuShi 1 一放学,小椿就拉着我和阿渡往医院跑。 “小薰!我们来看你啦!”小椿一边大...
    YuShi_阅读 1,086评论 10 9