上课已经是第十一天,C语言的语法差不多要结束了。剩下的就只有扫尾操作。C语言一共有32个关键字。老刘先是列出这些关键字,然后讲平时没有讲过的。
C语言关键字有:void int char short long double float unsigned signed
if else do while sizeof auto register const static enum
typedef return break goto continue swich struct union
case default extern for volatile
extern : 不分配内存,仅仅声明为外部变量。
auto 经常变的变量 基本不用
register 寄存器变量 用于经常访问的数据 加快访问速度,但是数量有限。
volatile 说明变量与硬件相关,不希望被编译器优化
typedef 对变量进行重命名
const 只读变量 一般用于指针。
1 #include<stdio.h> 2 3 int main() 4 { 5 int i = 10; 6 int j = 20; 7 8 const int * p1 = &i; 9 int * const p2 = &i; 10 11 *p1 =20;// err 12 p1 = &j;//ok 13 *p1 = 21;//err 14 *p2 = 20 ; // ok 15 p2 = &j ; err 16 }
const 往后面离谁最近就修饰谁,比如第八行,从const 离* 近,就表明*p里面的内容不可变。第八行也可以写成int const * p1 = &i; const 一般作为函数参数使用。
1 #include<stdio.h> 2 #include<assert.h> 3 4 int mystrcpy(char *dest ,const char * source ) 5 { 6 assert(source != NULL);//断言 7 while(*source) 8 *dest++ = *source++; 9 } 10 11 int main() 12 { 13 char *p = "hello world "; 14 char *p2 = NULL; 15 char data[1023]={0}; 16 17 mystrcpy(data,p2); 18 printf("data is %s\n",data); 19 20 21 }
注意这里要使用断言。
void *p 不知道存什么类型的地址。一般是通过隐式类型转换使用
宏定义:#define 仅仅是进行简单的替换。所以尽量用()
为了防止头文件被重复包含,使用 #ifndef A #define A #endif 为了让代码和平台无关 使用 #ifdef #else #endif
为了注释代码 使用 #if 0/1 #else #endif
1 #include<stdio.h> 2 #include"bunfly.h" 3 #include"hello.h" 4 5 #if 1 6 int main() 7 { 8 printf("i am main\n"); 9 hello(); 10 bunfly(); 11 } 12 #else 13 int main() 14 { 15 printf("hello world \n"); 16 17 } 18 #endif
下午的时候老李给我们讲面试技巧,模拟面试了两个人。感觉我现在去面试没有一点优势。还是要加强沟通技巧。周一还要交简历。