C语言-10日培训-小结
来源:互联网 发布:海尔模卡无网络能用么 编辑:程序博客网 时间:2024/04/29 01:57
一、C语言保留关键字:
Double (4)
enum
unsigned
Short (2)
union
signed
Long (4)
struct
continue
Char (1)
typedef
interrupt
Int (4)
register
goto
return
float
extern
for
void
near
const
do
switch
far
static
while
case
huge
sizeof
if
break
volatile
pascal
else
default
(n)表示字节数,指针始终占4个字节(32位机)。
二、回顾:
1.宏定义(如:#define PI (3) )与typedef的区别:前者为替换,变量要加括号,换行除了加分号还要在末尾加个反斜杠做连接符;
2.优先级:最好加括号来控制;
3.优化,如:逻辑与&&判断,如果前面不成立后面的就不做判断咯,再如,a>b>c是不同于数学表达式的哦;
4.变量范围:不小心就越界咯,注意有符号和无符号的区别,
如:unsigned char 永远不会小于0,为0~255;
5.强制转化,如:(char*);
6.printf注意事项,关于字符串的输出,数组要加地址符,如:int a[10] // 定义;
scanf( %d, &a[num] ) // 输入单个变量,其余见下清单;
7.struct/union等字节对齐方式,以结构中的最大变量为准进行对齐,
如:32位机为4字节对齐方式;
8.extern定义的变量可以在其他文件中使用(只要使用前加声明),而const则不行;
9.static是静态变量,const为常量,注意const定义与指针定义的结合;
10.注释://当行注释;/*多行注释*/;
11.大小写敏感;
12.按位运算,见下清单。
13.
清单:
如,一个整型变量int a=0000 0000 0000 0000,b=0000 0000 0000 1001;
~
&
^
>>
<<
左移n
printf
scanf
C++
%c 单字符
%d 十进制整数
cin>>dec>>
%f 十进制浮点数
%e 科学表示方法
cout<<setiosflags(ios::scientific)<<
%s 字符串
%u 无符号
%o 八进制
cin>>oct>>
%x %X 十六进制
cin>>hex>>
%P 指针
%% 百分号
\\反斜杠
注意:1.字符串都是见'\0'就停止输出;
2.输入的时候呢会自动补'\0',自己打进去的不作数的哟;
3.scanf注意事项,对出入格式的限制,如:逗号;
三、区别C和C++:
C(美国一群头脑敏捷的人搞的)
C++(丹麦人在C基础上改进的)
stdio.h
iostream.h
scanf()
cin>>
printf()
cou<<
构造函数
析构函数
malloc.h
malloc()
new
free()
delete
派生
内联函数 inline
string.h
memcpy
strcpy strncpy(注意,要手工加'\0')
string ?
头文件格式:1.# include < >
2.# include "" //自定义的头文件?
3.头文件只用来声明,不做定义。
Cpp文件:1.一个工程可以有多个头文件和cpp文件,只有一个main函数?
2.函数可以定义在main函数后面,但是必须在main函数前对它进行声明;
3.用if语句调用函数,判断后可用return直接跳出函数(好像很少用exit(0))。
四、回顾:
1.输入:cin和cin.getline的区别;
2.输出:cout中使用setw(int)需要头文件iosmanip.h;
×cerr<<"立即输出\n";
×cout<<"输出缓冲\n"<<flush;
3.三种进制数的表示方法;0x是16进制,在char定义中省略前面的0;
五、动态变量申请:
×堆栈和动态内存分配地方是不同的咯·
×编译先堆函数名·
×每个函数在调用的时候才堆栈,先进后出原则·
×动态分配是在另一个区域找一整块空白空间给你,一直等到free才释放。
1.malloc与free结合使用,避免内存泄漏,一般对指针申请空间要用强制转换,且申请之后要进行判空;
2.free后的指针要置空,避免野指针,如:free(p); p=NULL;
3.memset初始化;
4.memcpy拷贝;
5.sizeof和strlen+1的区别:
如:char a[]="\\\0";strlen(a)=1;sizeof(a)=3;//a:\ \0 \0
六、指针:
1.指针可以直接用地址赋值,地址为一个16进制数(32位机);
2.指针调用函数要加括号,如:(*p)(void);
注意:在定义指针的时候要把入参类型都写好,才能匹配调用函数成功;
3.空指针;
4.函数定义入参时用指针,确保可释该函数时传入的变量得到了修改;
5.变量要用地址符&给函数入参;
6.p+1代表指针移动一个结构单位的字节,如,输入数组:cin>>*(p+1);
7.二维数组与指针的关系;
8.二级指针;
×我晕了!
9.指针用->取变量,如(*p).x 和p->x是等价的;
10.*pn++=*pm++,如,字符串输出用while语句:while(*pn++=*pm++!='\0');
11.链表运用中注意保护头指针(定义全局指针变量)。
七、初始化:
1.多维数组的初始化;
2.结构体的初始化;
3.指针初始化;
×4.构造函数。
八、格式要求:
1.for循环变量尽量不要用i,很容易错看成1,导致死循环情况;
2.判断条件的常量做好用宏定义,方便以后修改;
3.逻辑判断的常量现在变量前面,避免不小心写成了变量赋值语句;
如:ch=='b' 是判断,但ch='b' 就搞成赋值咯。
4.结合下划线对变量命名,增强代码可读性(用番茄辅助工具可以很快的提取很长的 变量名^o^,如:ErrCode_EN表示枚举型变量, TravelInfo_ST结构体变量。
5.使用typedef自定义类型名称;
6.注意<和<=在循环条件中的使用。
时间函数的调用
1.随机数
//头文件//
<time.h>
<stdlib,h>
//主函数//
srand(unsigned (time)); //产生随机种子//
rand%100; //取余,产生一个100以内的随机数//
×随机数还可以在math.h下产生
×randomize();初始化随机数
×random(N);产生一个0~N-1的随机整数
2.现在时间
//头文件//
<ctime.h>
using namespace std;
//主函数//
time_t now=time(0); //获得现在时间//
tm* t=localtime(&now); //格式转换//
Cout<<asctime(t)<<endl; //输出时间//
容器
1.链表list
2.队列queue
3.向量vector
4.迭代器::iterator
元素
指针
begin()
front
end()
back
循环语句
1.switch 与if 之间转化
2.注意:switch(c)中c的数据类型没有float型;
3.do while 和while的区别
4.while 和for 循环
5.冒泡排序法
九、文件调试和测试:
1.白盒测试;
2.黑盒测试的三种方法:等价值;边界值;判定表(Y/N);
×(多指静态测试)
3.设计用例做测试用。
十、设计原则:
1.少重复;
2.圈复杂度;
数轴法,如数轴分为四段:
if (区间1)
else if(区间2)
else if(区间3)
else(区间4)
3.使用者的角色判断;
4.输入与输出的规格设计;
5.设计时提取功能点并作功能点的依赖关系图,以便分清它们的重量级;
文件操作:
# include <stdio.h>
# define ch_num (256*8)
extern char g_LogPath[] = "C://Lint//test-file.txt";
main(int argc,char*argv[])
{
FILE *fp;
argv[1]=(char*)&g_LogPath;
if (NULL==(fp=fopen(argv[1],"r")))
{
printf("不能打开%s文件\n",argv[1]);
return;
}
char letter[ch_num];
char c;
int num;
num=0;
do
{ c=fgetc(fp);
letter[num]=c;
num++;
if ((ch_num-1)==num)break;
} while (c!=EOF);
letter[num]='\0';
printf("%s\n",letter);
fclose(fp);
}
完
- C语言-10日培训-小结
- 8月19日Java培训小结
- C语言培训总结
- C语言培训_001
- C语言培训_002
- C语言培训_003
- C语言培训_004
- C语言培训_005
- C语言培训_006
- C语言培训_007
- C语言培训_008
- C语言培训_009
- C语言培训_010
- C语言培训_011
- C语言小结
- c语言小结
- C语言小结
- c语言笔试小结
- 伞
- 我们与世界
- SVN版本库的迁移
- 位运算
- [Python]MySQLdb for Python使用指南/Python的数据库操作
- C语言-10日培训-小结
- C/C++数据对齐
- Objective-c 字典对象 (NSDictionary 和 NSMutableDictionary )
- 《unix高级编程》apue.h头文件问题
- 理解虚基类、虚函数与纯虚函数的概念
- MFC中combo box的使用
- 基于WCF的SOA架构项目实战
- 内置应用程序(apk或源码)
- C/C++相互调用