const是一个C语言的关键字,它限定一个变量不允许被改变(可以通过指针进行改变)
例如:const int Max=100; Max++会产生错误;
const只修饰其后的变量,至于const放在类型前还是类型后并没有区别。如:const int a和int const a都是修饰a为const
对于指针而言其运算符是从右到左
如:char const * pContent,可以理解为char const (* pContent),即* pContent为const,而pContent则是可变的。
const修饰的指针指向及其指向变量的值的变化
例如:const char *str=”I like”; (等同于char const *str=”I lik”;)
//此时,*str(值) 不能改变 但可以改变str的指向
str[0]=’w’;//错误 *str的值为str[n]的值 不能被改变
str=”I donot”; //成立
例如:char * const str=”I like”;//此时str指针是不能改变,但是*str是可以改变
str[0]=’w’;//成立 *str的值可以改变
str=”I donot”; //错误 str的值不能被改变
memcpy函数
#include
int main()
{
char *s="Golden Global View";
char d[20];
memcpy(d,s+14,4); //从第14个字符(V)开始复制,连续复制4个字符(View)
//memcpy(d,s+14*sizeof(char),4*sizeof(char));也可
d[4]='\0';
printf("%s",d);
getchar();
return 0;
}
宏定义:无参数与有参数
无参数:
用宏名来表示字符串,其中字符串可以是常数、字符也可以是字符串。
例如:#define pi 3.1415;则在后面的程序中只要出现了pi就用3.1415来进行代替,在对源程序进行编译时,将先由预处理程序进行宏代换用3.1415来替换pi
宏定义必须写在函数之外,终止其作用可以用#undef
#define INTRGER int pi 3;可以用宏定义表示数据类型
typedef:不是简单的替换,而是对类型说明符重新命名;
例如:
#define pin1 char*;
typedef char* pin2;
void main(){
pin2 a,b;//表示char *a/char *b
pin1 x,y;//表示char *x,y;
}
有参数:
一般形式:#define 宏名(形参数) 字符串
调用的一般形式:宏名(实参数)
其定义后可为字符串、函数、表达式等等
条件编译:
第一种形式:如果吧标识符已经被#define命令定义过则对其1进行编译,否则对其2进行编译
#ifdef标识符
程序其1
#else //没有也可以不写else
程序其二
#endif
第二种形式:
#ifndef标识符 //没有被#define定义走程序其1
程序其一
#else
程序其二
#endif
举报/反馈