入门知识复习
1.C语言特点 速度快、所占空间小、可移植性高、抽象层次低、更接近机器语言。
2.常用符号
\0 :哨兵字符、空字符
= : 赋值 ==:判断相等
0 :假 非0:真
3.& |
- &&与运算:同真结果为真。若第一个条件为假,不判断第二个条件。
- || 或运算:一个为真结果为真。若第一个条件为真,不判断第二个条件。
- &和|: 对数字进行“与、或”运算 相当于“&& 和 ||” 但总是计算两个条件。
4.链式赋值:y = x = 4;
5.循环的相关知识
switch语句会运行case之后的所有代码直到遇到break,switch语句只能检测值。
break跳出循环,continue继续循环。
6.指针
- *运算符:读取存储器地址中的内容
设置存储器地址中的内容
&运算符:找到变量的地址,用%p输出
- 指针退化:数组赋给指针时只保留地址信息,对数组长度一无所知
7.sizeof
sizeof(int) = 4
sizeof("Turtles!") = 9 (还包括\0)
sizeof(指针) = 4或8
sizeof(数组) = 数组大小
8.scanf
fgets 函数原型:char *fgets(char *s, int n, FILE *stream); 我们平时可以这么使用:fgets(str, sizeof(str)或直接输入长度, stdin);
gets —— 不安全,慎用
9.存储器
高位
栈(局部变量)
堆(动态存储)
全局量
常量
代码
低位
10.string.h函数
strchr(): 在字符串中查找字符
strcmp():比较字符串
strstr():在字符串中查找字符串
strcpy():复制字符串
strlen():返回字符串的长度
strcat():连接字符串
11.数组的数组
char tracks[][80] =
{
"I left my heart in Harvard Med School.",
"Newark, Newark - a wonderful town.",
"Dancing with a Dork.",
"From here to maternity.",
"The girl from Iwo Jina."
};
指针的数组
练习1:
1 #include<stdio.h> 2 3 int main() 4 { 5 char zuifan[] = "Alive"; 6 char *Jimmy = zuifan; 7 printf("zuifan is %s ,Jimmy is %s \n",zuifan,Jimmy); 8 zuifan[0] = 'D'; 9 zuifan[1] = 'E'; 10 zuifan[2] = 'A'; 11 zuifan[3] = 'D'; 12 zuifan[4] = '!'; 13 printf("zuifan is %s ,Jimmy is %s \n",zuifan,Jimmy); 14 return 0; 15 }
练习2:
1 #include<stdio.h> 2 #include<string.h> 3 4 char tracks[][80] = //tracks[5][80]中5可以省略,注意每一个数组之间要用逗号分隔开! 5 //全局变量 可以在所有函数中使用 6 { 7 "I left my heart in Harvard Med School.", 8 "Newark, Newark - a wonderful town.", 9 "Dancing with a Dork.", 10 "From here to maternity.", 11 "The girl from Iwo Jina." 12 }; 13 14 void find_track(char search_for[]) 15 { 16 int i; 17 for(i = 0;i < 5;i++) 18 if (strstr(tracks[i],search_for)) 19 printf("Track %i :'%s'\n",i,tracks[i]); 20 21 } 22 23 24 int main() 25 { 26 char search_for[80]; 27 printf("search for:"); 28 fgets(search_for,80,stdin); 29 search_for[strlen(search_for) - 1] = '\0'; 30 find_track(search_for); 31 return 0; 32 }