注册 登录
编程论坛 C语言论坛

让指针p获取指针a所指向的值,为什么这个代码不能实现?

b1592187525 发布于 2020-03-07 17:28, 1510 次点击
让指针p获取指针a所指向的值,为什么这个代码不能实现?运行后没有显示任何输出.
程序代码:
#include"stdio.h"
int main(void){
    char *p="xzcvbnm";
    char *a="jfknejfk";
    for(;*a;p++,a++){
        *p=*a;
        printf("%c",*p);
    }
    *p='\0';
    printf("\n%s",p);
    return 0;
}
4 回复
#2
forever742020-03-07 17:30
因为你修改常量的企图被操作系统识破并阻止了。
#3
forever742020-03-07 17:33
我们近似地认为字符串常量放在只读存储区因而不允许被write
#4
bcbbcclbbc2020-03-07 21:52
char *p="xzcvbnm";
 char *a="jfknejfk";
定义的时候加上*是说明是一个指针变量;
后面使用的时候加上*则是指针变量所指向的值。如:*p的值为‘x’。
#5
return_02020-03-09 19:53
*p=&(a)
#6
自由而无用2021-08-10 20:38
#include <stdio.h>

//#define WR_PC
#define wr_code 0x55

int main(int argc, char *argv[])
{
    char *pc = (char *)main;
   
    printf("%p\n", main);
    printf("0x%x", *pc);
#ifdef WR_PC
    *pc = wr_code;
#endif   
     return 0;
}
1