指针秘密之字符串常量

来源:互联网 发布:羽毛球比赛直播软件 编辑:程序博客网 时间:2024/04/28 22:11

如果指针指向字符串常量char *argv="this",其他相当于const char *argv="this",因此不能随便更改指针所指向的内容,平时如果不注意经常会犯这个错。那该怎么办呢?

很简单--只要换成数组即可: char argv[]="this"。

好吧下面

结合具体的代码进行分析:

#include <stdio.h>#include<stdlib.h>void main(){  char *argv="this"; char arr[]="that"; char temp; printf("\n**************转换前********************\n"); printf("指针argv= %s\n",argv); printf("数组arr= %s\n",arr); /*指针交换 */ temp=*(argv+2); *(argv+2)=*argv;//编译到这里出错了! *argv=temp;/*数组交换*/ temp=arr[2]; arr[2]=arr[0]; arr[0]=temp; printf("\n**************转换后*********************\n"); printf("指针argv= %s\n",argv); printf("数组arr= %s\n",arr);}

第14行想要对指针内容进行更改,出现了编译错误,验证了上面所述内容。下面数组的用法是合理的。

说到这里应该稍微体会到指针的威力了吧!未完待续。。。


原创粉丝点击