您的位置:首页 > 其它

指向字符串常量的指针

2012-10-03 14:33 239 查看
#include <stdio.h>

#include <stdlib.h>

int strcmp(char *source, char *dest) {       //实现字符串对比 

    int i;

    //*source='A';           当source指向字符串常量时不允许,指向栈空间时可以。  

    for(i=0; source[i]==dest[i]&& source[i]!='\0'; i++)

    ;

    if (source[i]=='\0' && dest[i]=='\0')

    return 0;

    else

    return -1;

}

int main() {
    char *source="asd", *dest="asd";      //“asd”为字符串常量,对应于内存中只读数据段,故这里定义可以改成const char *source="asd", *dest="asd"

    char a[]="asdf", b[]="asd";

    int c,d;

    

    //source[0]='A';     不允许,赋值操作不合法,source是指向字符串常量的指针,字符串常量存在只读区域,只可读不可写 

    //a[0]='A';         这允许,a[]是局部变量,对应于内存中的栈 

    c=strcmp(source,dest);

    d=strcmp(a,b);

     

    printf("c=%d, d=%d\n",c, d);

    //printf("%s\n", source);

    system("pause");   

    return 0;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  include system c