关于const关键字的使用

/*

**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修饰。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,421评论 0 2
  • 题目来源:1、中兴、华为、慧通、英华达、微软亚洲技术中心等中外企业面试题目;2、C 语言面试宝典(林锐《高质量编程...
    月震阅读 1,861评论 0 1
  • 注:这是第三遍读《C语言深度解剖》,想想好像自从大学开始就没读完过几本书,其中谭浩强的那本《C语言程序设计(第四版...
    HavenXie阅读 1,785评论 1 6
  • !!!注意:因为简书的显示格式缘故,所以“ * ”显示会出现问题,可能有些星号由于疏忽未改动格式,造成没有显示,请...
    Eric_Hunter阅读 718评论 0 0
  • 序: 亦舒的小说里有这么一句话,说“在爱你的大人眼中,你永远是蠢钝的小孩,讨厌你的人才会说'不用替他担心,他不知多...
    乔尤阅读 450评论 1 1