d 十进制, 0 是八进制 0x 是十六进制,
scanf(格式控制,地址列表)
ascii码中,大写与小写字母之间的数值差32
A=65,a=97
break 跳出循环体,提前结束循环.
continue 结束本次循环,跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判断.
C语言中将字符串作为字符数组来处理.
字符串结束标志,以字符'\0'代表.
'\0'代表ascii码为0的字符,ascii码为0的字符不是一个可以显示的字符,而是一个"空曹作符",即它什末也不干.
凡不加类型说明的函数,一律自动按整型处理.
如果函数值的类型和return语句中的表达式值不一致,则以函数类型为准.
void 不带回值 无类型(空类型)
递归:一个函数自己调用自己.
数组名作函数参数时,不是"值传递",不是单向传递,而是把实参数组的起始地址传递给形参数组,这样两个数组就占用同一段内存单元.
存储空间
1.程序区
2.静态存储区: 静态变量 全局变量
3.动态存储区: 函数形参变量 局部变量(auto) 函数调用时现场保护和返回地址.
C语言中每个变量和函数有两个属性:
1.数据类型: 整形,字符型等
2.数据存储类别: 自动(auto),静态的(static),寄存器的(register),外部的(extern)
宏定义
#define 标识符 字符串
#define PRICE 30 定义的PRICE是常量
文件包含:指一个源文件可以将另外一个源文件的全部内容包含进来.
#include "文件名"
条件编译
#ifdef(ifndef) 标识符
或
#if 表达式
程序1
#else
程序2
#endif
& 取地址运算符
* 指针运算符
只有同一类型变量的地址才能放到指向该类型变量的指针变量中。
'单向传递’的‘值传递’方式,形参值改变无法传给实参。
C语言中实参变量和形参变量之间的数据传递是单向“值传递”方式,指针变量作函数参数也要遵循这一规则。调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指变量的值。
数组名代表数组的首地址。
c语言对字符串的处理是按字符数组处理的。
() 优先级大于 * 优先级
int (*p)() --> p为指向函数的指针,该函数返回一个整型值。
int *p() --〉p为带回一个指针函数,该指针指向整形数据。
一个函数可以带回一个整型值,字符型,实型值等,也可以带回指针型的数据,即地址。
带回指针的函数定义: 类型标识符 *函数名(参数表)
指针数组:一个数组,其元素为指针类型的数据,称为指针数组。 指针数组只能存放地址。
定义 类型标识符 *数组名[数组长度说明]
main(int argc,char *argv[])的形参, argc指命令行中参数的个数, argv[0]..[n]是指命令行中的每个参数
数组array中各元素都是同一类型的。
结构体struct中各元素类型可以不同。
共同体union,几种不同类型的变量存放到同一段内存单元中。
枚举enum类型,将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。
enum weekday {mon,tue,wed,thu,fri,sat,sun};
typedef定义类型 typedef int COUNT; COUNT i,j;
"面向过程"的语言一般来说是直接面向问题的,以算法和数据结构为中心
而"面向对象"的语言相对来说更加符合人们的建模习惯,适合将现实中的东东
抽象成类,然后利用类之间的交互等等来解决问题
用C或C++并不重要,都可以解决问题
但是,大家不要在使用C++或java的时候,还以C的观点和习惯来解决问题就好了
也就是说,不要带着"面向过程"的观点和方法去使用"面向对象"的语言
阅读(1225) | 评论(0) | 转发(0) |