/*
**test16.cpp : Defines the entry point for the console application.
**系统winXP SP3 32位.
**关于const关键字的使用
*/
#include<stdio.h>
void copystring(char *dst,const char *src)
{
/***************************************
举例字符串复制函数,将源字符串拷贝到目的字符串中,
目的字符串需要改变,源字符串不需要改变所以源字符串类型可以加上const,
这里就不可以修改源指针指向的内存单元了,
但是注意这里指针本身的值还是可以改变的
****************************************/
int i,j;
for(i=0;dst[i]!='\0';i++)
for(j=0;src[j]!='\0';j++)
dst[i++]=src[j];
dst[i]='\0';
}
int main(){
char p1[20]="ab",p2[20] = "aa";
printf("s1=%s\n",p1);
printf("s2=%s\n",p2);
copystring(p1,p2);
printf("copystring(s1,s2):\n");
printf("s1=%s\n",p1);
return 0;
}
Tips1:const用来修饰常量,更大的作用在于修饰函数的参数与返回值,可以保障函数参数与返回值不被恶意修改。
Tips2:所以参数若用于输出,则不可以用const修饰,也就是const只可以用于修饰输入参数。
Tips3:如果函数用的值传递,则不需要用const修饰,因为即使参数改变了,也只是改变函数堆栈上的这个参数的拷贝。
Tips4:函数返回值采用const修饰。