C语言基础小结(一)

原创 2012年03月25日 16:16:10
1. 编写原代码(.c)->预处理(预编译)(.i)->编译(.s)->汇编(.o/.obj)->连接->执行
2. C语言不同于C++,C中变量必须先定义后使用,不能在定义变量的同时使用变量。
变量名只能由字母、数字和下划线组成,且只能以字符或者下划线开头。
3. 在函数内定义的变量称为局部变量。
4. 局部变量仅在定义它的代码块内部有效,出了该代码块变量就消失。
5. 在任何函数外定义的变量称为全局变量。
6. 全局变量在程序中都是可见的,可以被任何代码块所用。
7. C99关键字
auto 声明自动变量,缺省时编译器一般默认为auto
int 声明整型变量
double 声明双精度变量
long 声明长整型变量
char 声明字符型变量
float 声明浮点型变量
short 声明短整型变量
signed 声明有符号类型变量
unsigned 声明无符号类型变量
struct 声明结构体变量
union 声明联合数据类型
enum 声明枚举类型
static 声明静态变量
switch 用于开关语句
case 开关语句分支
default 开关语句中的“其他”分支
break 跳出当前循环
register 声明寄存器变量
const 声明只读变量
volatile 说明变量在程序执行中可被隐含地改变
typedef 用以给数据类型取别名(当然还有其他作用)
extern 声明变量是在其他文件正声明(也可以看做是引用变量)
return 子程序返回语句(可以带参数,也可不带参数)
void 声明函数无返回值或无参数,声明空类型指针
continue 结束当前循环,开始下一轮循环
do 循环语句的循环体
while 循环语句的循环条件
if 条件语句
else 条件语句否定分支(与if连用)
for 一种循环语句(可意会不可言传)
goto 无条件跳转语句
sizeof 计算对象所占内存空间大小
8. case后只能是整型或者字符型常量或者常量表达式
9. break是终止本层循环;
continue是终止本轮循环,然后继续下一轮循环。
10. const修饰的变量为只读变量,近水楼台先得月,谁紧随其后,它就修饰谁,谁就是readonly
11. volatile修饰的变量旨在告诉编译器此变量是不稳定的,随时可能会被更改,每次取值都必须到内存当中去取,不得对它进行优化。
12. extern修饰的变量或函数就是告诉本文件中所有成员,这家伙不是土著,而是老外,这家伙的家乡(定义)在外国(外面的文件中)。
13. sizeof是个关键字,不是函数,当sizeof在计算变量所占空间大小时,括号可以省略,但在计算类型所占空间大小时,括号不能省略;sizeof是在编译的时候就进行计算!
14. 正数的补码和原码相同,负数的补码最高位为1,其余各位按位取反后+1
15. Char a[1000];
int i;
for(i=0;i<1000;i++)
{
a[i]=-1-i;
}
printf(“%d\n”,strlen(a));
这里打印结果为255,原因为负数的存储是以补码形式,当i=255时,a[255]=-256,-256的绝对值的原码是100000000,它的补码是绝对值的原码的最高位为1,其余按位取反,然后加1,结果仍是100000000,该值为0;
strlen计算的是字符串到0为止(不包括0)
16. 空结构体的大小为1个字节(任何类型都有大小,至少为1个字节)
17. 一个union只配置一个足够大的空间用来容纳最大长度的数据成员,同一时间只能存储一个数据成员,所有数据成员具有相同的起始地址。union主要用来压缩空间。
18. 存储模式:大端模式和小端模式。大端模式字数据的高字节存储在低地址中,小端模式刚好相反。
19. 枚举enum,枚举常量默认从0开始,逐个递增1;后一个常量的值=前一个常量值+1
20. 预算符##:#define connect(a,b) a##b预处理后的结果就是connect(a,b)的地方替换成ab
21. 指针,就是存放内存地址的变量,大小固定,32位系统中的大小为4个字节。
22. C语言中左值只能是非只读变量;
23. 当数组名作为右值时,相当于该数组首元素的地址,数组名不能作为左值;
24. 对指针进行加1操作,得到的是下一个元素的地址,而不是在原有地址值上直接加1,一个类型为T的指针的移动,以sizeof(T)为移动单位;
int a[5]={1,2,3,4,5};
int *ptr=(int *)(&a+1);
printf(“%d,%d”,*(a+1),*(ptr-1));
打印结果为2,5
(&a+1)取数组的首地址,然后在该地址的基础上加上sizeof(a)的值
25. a是一个数组,a=&a,但意义完全不一样,a是数组的首个元素的地址,&a是表示整个数组的首地址,a+1=a[1],&a+1=下一个数组的首地址



【C语言基础一百题1】C语言基础100题全新整理版

最后一个寒假,想复习一下c语言的基础知识,正好也做一个查缺补漏的工作,于是找个C语言基础100题作为练习。 但是原来的100题涉及很多绘图的问题,而且有些题目过于混乱并且在摘记过程中没有经过加工,所...
  • ANTON_6
  • ANTON_6
  • 2011年02月06日 21:08
  • 11659

计算导论与C语言基础(专项课程之一)

四. 程序运行的基本原理: 1.冯诺依曼式计算机(存储式计算机)是现代计算机的原型,EDVAC是现代计算机的原型。 2.冯诺依曼式计算机基本结构:运算器 存储器 控制器 输入设备 输出设备。 对比我们...
  • liuwenjunli
  • liuwenjunli
  • 2015年07月25日 11:55
  • 951

C语言基础学习学习前的准备-1

开始学习C语言啦~先了解下C语言的一些相关只是把,比如字节、位,以及要注意的一些编程习惯。...
  • octopole
  • octopole
  • 2016年08月05日 09:53
  • 855

c语言基础及小结

枚举类型: 是用户自定义类型,SUN都是整型的常量,不能改变值 //默认值为0,1,…… //可自行修改值,如:SUN=100 enum (可省略Week) {SUN,MON,TUE,WED,...
  • Summer493506332
  • Summer493506332
  • 2015年03月17日 20:43
  • 252

C语言基础小结(二)

26. 位段:指定结构体中成员变量所占的位数(以位的形式紧凑存储) unsigned char/int aaa:1 这里只能是unsigned char/int类型 27. 指针数组:int *...
  • woniuysniu
  • woniuysniu
  • 2012年03月25日 16:18
  • 97

c语言基础面试题

原文: c语言基础面试题 链接:http://bbs.51cto.com/thread-811556-1.html 1. 写一个函数判断当前系统的字节序。 2. 如何用c语言执...
  • xww810319
  • xww810319
  • 2014年01月03日 10:51
  • 3722

JS 关闭与刷新?

关闭与刷新这是一个问题。 function  close(){   var n = window.event.screenX - window.screenLeft;             var ...
  • shuaisunny
  • shuaisunny
  • 2010年12月08日 12:26
  • 245

C语言入门(十二)函数的定义和调用

函数的定义和调用  前言: 本节介绍C程序的基本单元--函数。函数中包含了程序的可执行代码。每个C程序的入口和出口都位于函数main()之中。main()函数可以调用其他函数,这些函数执行...
  • caihongdao123
  • caihongdao123
  • 2016年07月12日 11:13
  • 6743

c语言基础内容——一些基础内容(完节)

带个徒弟过国二,所以就干脆打成博客形式吧; 自己也可以回顾,加深一下学习,为学嵌入式打好基础; 考国二的可以看下,大神也可以指点一些,毕竟本人还是很菜的; 会直续更新的; 废话不多说,直接进入...
  • zw1996
  • zw1996
  • 2016年11月30日 12:47
  • 433

1小时c语言入门

1小时c语言入门转http://www.51c51.com/bbs/viewthread.php?tid=45154(一)     相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋...
  • liuzheng2684
  • liuzheng2684
  • 2011年02月28日 11:29
  • 692
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言基础小结(一)
举报原因:
原因补充:

(最多只允许输入30个字)