关键字:
extern:变量从其他程序中引用,只需声明不能初始化
static:
修饰全局变量: 不可被其他文件调用
修饰函数:改变作用域,不可被其他文件调用
修饰局部变量:局部变量为静态变量,普通变量存放在栈内存中,当函数结束时,变量被释放;而静态变量存放在静态数据区,当函数结束时静态变量不会被释放,知道整个程序结束时,才会释放静态变量的值。
const:
1. const修饰只读变量,不可通过自身修改,但可以通过访问地址进行修改。
2.
const int *p:修饰值*p,*p值不可修改,p的地址可修改 = int const *p
int * const q: 修饰指针q,值*q可修改,q地址不可修改
const int * const m:修饰地址和值,均不可修改
void strcpy(char *des,const char * src):修饰形参,形参值不可改变
#include <stdio.h>
void strcpy(char *des, const char * src)
{
while( ( *des++ = *src++ ) != '\0' );
}
int main()
{
char des[10], src[10];
scanf("%s %s",des,src);
printf("%s %s\n",des,src);
strcpy(des, src);
printf("%s %s\n",des,src);
return 0;
/*int const i = 0;
int *p = (int *)&i;
*p = 2;
printf("%d", i);
return 0;
/*const int a = 0;
int *p =(int *)&a;
(*p)++;
printf("%d\n", a);
return 0;
int a = 0;
const int *p =(int *)&a;
*p++;
printf("%d\n", *p);
int b = 1;
int * const q =(int *)&b;
(*q)++;
printf("%d\n", b);
*/
}