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语言基础小结(二)

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

C语言I/O小结 poj百练2804字典(基础题)

这个题目字典的输入是一个问题 遇到空行结束 那么如何使用好scanf 和 gets呢,数据量大肯定还是要用C的I/O的   sscanf是一个很不错的函数 刚好解决了这个问题 我们知道sc...
  • cfzjxz
  • cfzjxz
  • 2012-05-07 15:55
  • 1124

C语言小结--数组

1、什么是数组(1)从内从角度来说,数组就是一次分配多个变量,而且这些多个变量在内存中是依次相连的。 (2)从编译器角度来说,数组变量也是变量,和普通变量没有什么本质区别,变量的本质就是一个地址,这...

<C语言全局变量小结>

在这之前,有一个C知识点要回顾一下:那就是,在C语言中,每一个变量和函数都有两个属性,它们分别是”数据类型“和”存储类别“,提这个是因为很多时候往往只知道”数据类型“这个属性而把”存储类别“这个重要的...

C语言标准 I/O小结 (感谢 simon_夏 的分享)

与文件I/O围绕文件描述符操作不同,标准I/O的操作是围绕流进行的。 流: 对于流,《C和指针》里有一段解释得很好: ANSI C进一步对I/O的概念进行了抽象。就C程序而言,所有的I/...

深入理解C语言----标准I/O小结(缓冲区,I/O函数及其他相关问题)

与文件I/O围绕文件描述符操作不同,标准I/O的操作是围绕

C语言小结(一)

一、伪函数 结构体或类通过函数重载调用类似方法一样调用 重载关键字operator class Hello{   public:     void operator ()(){  ...
  • su_33
  • su_33
  • 2016-03-31 09:48
  • 32

c语言的小结(1)

今天,突然有一个想法冲击了过来:这是为什么呢? 每一个存在的东西,都有化的必然性。在C学习的畅游中,很多时候没有去想why?即使去想也没有想通!一个问题一个问的集累: 故不积跬步,无以至千里;不积小流...

C语言小结2

1.逗号表达式 c语言中有一种特殊的运算符——逗号运算符,优先级别最低,它的一般形式为: 表达式1,表达式2,…,表达式n 它将两式联接起来,如:(6+6,6+8)称为逗号表...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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