1.转义字符:
C中定义了一些字母前加 "\" 来表示常见的那些不能显示的ASCII字符,如\0 空字符,\r 回车, \n换行等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。
2. 输入输出缓冲区
清空输入缓冲区 scanf("%* [^\n]"); scanf("%c[^\n]");
scanf(" %* c"); scanf(" %*c")
3.size of 的应用 ;结果是4、8、8;计算变量占用的字节数。在32位机上,Int占4个字节,double占8个字节。
1 #include<stdio.h>
2
3 int main(){
4 int m=5;
5 double e=2.5;
6 printf("%d\n%d\n%d\n",sizeof(m),sizeof(e) ,sizeof(m+e));
7
8 }
4. 标识符 :
首字母、下划线_、数字(不能放开头)
5.指针
1 #include<stdio.h>
2
3 void fun(int *n){
4 while((* n)--);
5 printf("%d",++(*n));
6 }
7
8
9 int main(){
10 int a =10;
11 fun(&a);
12 return 0;
13 }
5.(单选题)若有以下程序
- A.第4行
- B.第5行
- C.第6行
- D.第7行
正确答案:A
解析:
逗号表达式中间不能为空,必须要有表达式。
分号; 中间可以为空,不会有警告或者报错。
6.C语言的基本单位是 函数。
7.设计一个交换变量值的函数:
func(int * x,int * y) { //正确定义指针形参
int p; //正确定义自己的局部变量
p=*x; //通过指针形参简引用环境变量,并完成交换。
*x=*y;
*y=p;
}
fund(int *x,int *y){ //不需要增加局部变量
*x=*x+*y;
*y=*x-*y;
*x=*x-*y
}
8.若定义 int a=3; int *p=&a;
那么 *p代表引用a变量的值;p代表a的地址值。
9.指针与数组
9.1 假定a为一个整形数组名,则元素a[4]的地址可表示为 &a[4],也可以是数组首地址加上元素的偏移量:a+4
9.2 int * pa[5] //指针数组 。pa是有5个元素的指针数组,每个元素是指向int型的指针。
9.3
int a[]={1,2,3,4,5,6,7,8,9,10};
*p=a; // 指针变量p指向数组a[0]
p+=2; //p=p+2 指针p指向变量a[2]
则*(p++)的值为:// 先算表达式的值为 取a[2]的值为3,并让p指向a[3]
9.4 二级指针取同一个值(b)的代码
int *pp,*p,a=10,b=20;
pp=&p;
p=&a;
p=&b;
printf("%d%d\n",*p,*pp);
10. | 或运算 二进制位运算,有1为1。
11.用指针区分开一个字符串内的数字和字母
char arr[20]="1234zhangfei";
int split(char *s1,char **s2){ //一个用于传入,一个用于传出
int res=0;
for(; ;){
if((*s1>='0')&&(*s1<='9')){ //字符在0-9之间就转换为数字
int j= *s1- '0';
res=res*10+j; //把取得的数字拼接到一个数字之中
s1++; //继续取数字
else{
break;
}
}
*s2=s1;
return res;
}
12. 零碎的笔记汇总
数组变量是一个常指针,是数组的首地址。数组只能在声明时赋值,而指针可以多次赋值。
size of 指针为4
数组不能做函数的返回值,指针可以
数组做参数,要指定数组长度。指针做参数,要指定指针的大小。
const修饰的变量,不允许修改。
13.enum的使用
#include<stdio.h>
2
3
4 int main(){
5 enum term{my,i,yours=4,his,her=his+10 };
6 printf("%d,%d,%d,%d,%d\n",my,i,yours,his,her);
7 return 0;
8 }
结果为0,1,4,5,15
14.
- A.声明为void类型的指针可以指向任何类型的对象,并且通过该指针可以直接访问它所指向的对象。
- B.如果两个指针的类型不是同一个类型,它们就不能相互赋值。(void类型的指针可以与其它类型的指针相互赋值)
- C.一个int 类型的指针既可以指向int类型的对象,又可以指向int类型的函数。
- D.数组名就是指针。
正确答案:D
解析:
不能用void指针直接访问对象,因此A错误。不同类型之间的指针可以互相赋值,因此B错误。指向函数的需要是函数指针,因此C错误。数组名就是指针,只不过是常指针,因此D正确。