c语言 常用知识小结
1.C语言是一门面向过程的语言,优势是运行速度快,多用于底层硬件的开发,具有很强的可移植能力,较好的表达性
2.数据类型
3.C语言常用数学函数
还有三角函数 sin() cos() tan(),这些不是很完整,还缺了不少
4.c语言的各种运算符及其优先级(要点)
这个是及其重要的
不完整的补充:
1).~(按位取反),>>(右移),<<(左移),^(按位异或),|(按位或)运算符是二进制运算符
并且用<<或者>> 运算符后会在低位或者高位补零
2).||(逻辑与)运算符但已经判断出一边为真时便不会再判断另外一边
3).%(求余)运算符必须为整数
4).c++与++c不同在c++是先使用c在加1,而++c是先加在用
5).运算符大致的优先级为:
初等运算符->单目运算符->算术运算符->关系运算符->逻辑运算符->赋值运算符->逗号运算符
6).关系运算符最终判断出来的值是真和假
5.二维数组中有个特点:
a[3][3]={1,2,3,4,5,6},会依次把里面的数分给a[0][],a[1][]
此时a[0][2]=3 a[1][2]=6
6.指针 定义(举个栗子):int *p;这样就定义了一个整型指针
void main()
{
int a,*p;
p=&a; //把指针p指向a
*p = 3; //这样就把a的值改成了3,p代表a的地址,*p代表a的值
}
当指针和数组结合时
void main()
{
int *p,i;
int a[4]={1,2,3,4};
p = a; //指针p便指向了a数组的开头,也可以写成p=&a[0]
//以下是4个输出结果一样的例子
for(i=0;i<10;i++) printf("%d",a[i]);
printf("\n");
for(i=0;i<10;i++) printf("%d",p[i]);
printf("\n");
for(i=0;i<10;i++) printf("%d",*(a+i));
printf("\n");
for(i=0;i<10;i++) printf("%d",*(p+i)); //输出结果均为 1,2,3,4
printf("\n");
}
指针的増减运算要特别注意:*p++等价于*(p++)先取出p所指的单元内容后再p=p+1,p所指的单元内容不变
*++p等价于*(++p)即先进行p = p+1,在取出单元内容,p所指的单元内容不变
(*p)++是先取出p所指的单元内容,然后单元内容加1,p所指的对象没有改变
++*p等价于++(*p)即单元内容加1,p所指的对象没有改变.
二维数组和指针:1.行指针
void main()
{int a[3][3];
int (*p)[4]; //二维数组定义行指针后面要加上数组每列的长度
p=a; //指向a
//具体操作就不打了,*(p+i)+j便是a[i][j]的地址,*(*(p+i)+j)便是指向他的值
}
6指针和字符及字符串
字符和字符串的区别:字符一般用‘’括起来,字符串用“”括起来
字符数组的定义
void mian(){
char ch[6]="hello",ge[]; //ch[6] = {"hello"}与其等价
int i;
for(i=0;ch[i]!='\0';i++)
printf("%c",a[i]); //可以用这方法输出ch
scanf("%s",ge); //可以用这个方法输入字符串,使用该方法时空格,回车,跳格都作为结束符
printf("%s",ge); //可以用这种方法整个输出字符串
}