一、fgets()和fputs()的使用 
(1)fgets(): 
1)该函数时一个文件操作相关的函数,暂时使用这个函数可以从键盘上接收一个字符串,保存到数组中。 
2)原来接收字符串保存到数组中的方法 
A.  Scanf(“%s\n”,str);                //缺点:不能接收空格 
B.  gets(str);                                //优点:可以接收空格 
 缺点:会有一个警告,不安全的 
 不安全:比如数组长度是50,如果我们输入的长度正好是50个。此时把50个字符全部存到数组中,存在问题。因为没有空间存放字符串结束符(\0)。 
3)fgets()是一个安全的字符串接收的函数 
char ch[5];                //如果使用fgets此时数组中最多存放4个可见字符 
//会自动把数组的最后一个元素存放\0 
//当输入的字符串的长度小于数组长度的时候,还会保存回车 
4)fgets()使用格式: 
fgets(数组名,数组长度,stdin); 
例: 
char ch[5]; 
fgets(ch,sizeof(ch),stdin); 
(2)fputs(): 
fputs(str,stout); 
 
二、const关键字 
概念:使用const修饰变量可以让变量的值不能改变。 
使用: 
1)修饰变量 
                * 但是用指针可以强制转换 
                int a=10; 
                int *temp=&a; 
                *temp=100; 
                只是在地址中的值发生了改变,但是控制台输出还是a=10,*p=100 
2)修饰指针变量 
                A.指向可以变,但是指向的变量的值不能改变 
const int *p=&a; 
B.指向的变量的值可以变,但是指向不能变 
int * const p=&a; 
C.指向不能变,指向内容的值也不能变 
const int * const *p=&a; 
记忆技巧: 
看 *  和 const 的位置 
如果const在*的左侧,表示指针变量指向的变量的值不能改变,指针的指向可以改变。 
如果const在*的右侧,指针变量指向的变量的值可以改变的,指针的指向不可以改变。 
如果const出现在*的两侧,都不能变。 
3)修饰数组 |   
        
 
    
    
    
     
 
 |