字符型指针为什么不能修改单个字符?

char *p="hello";

*p=‘k‘;        //编译能通过,但是运行到这里会出错
因为p指向的是一个字符串常量. 所以运行时发现要改常量区就会报错.
改成:
char* p = (char*)malloc(6);
strcpy(p,"hello");
*p=‘k‘;
....
free(p);

时间: 2024-10-02 10:57:30

字符型指针为什么不能修改单个字符?的相关文章

C++中cout输出字符型指针地址值的方法

#include<iostream> #include<string> using namespace std; int main(){ char c[3]={'a','b','c'}; char *p=c; cout<<*p<<' '<<(void*)p<<endl; cout<<*(p+1)<<' '<<static_cast<void*>(p+1)<<endl; cou

关于指针 用字符数组,字符指针变量输入字符串 动态为字符型指针变量分配内存

#include <stdio.h> #include <iostream> #include<math.h> using namespace std; int main() { //声明字符型数组和指针变量 char str[10]; char *strip=str; //输入输出 cout<<"str="; cin>>str; //用字符数组输入字符串 cout<<"str="<<

字符型指针与字符串常量

字符串常量在编译时系统给定存储位置,可以赋值给字符指针:此时可以通过下标进行访问,但不可以通过下标修改字符串的值. 字符指针指向字符数组时可以修改字符串的值. #include <stdio.h> #include <string.h> int main() { char a[26]; char *b = "abc"; //定义时初始化 b="123"; //可以被重新赋值 //b[1] = 'v'; //不可以被修改 a[1] = b[1]

字符数组输入不能带&amp;,单个字符输入带&amp;

代码 #include<stdio.h>main(){ char a[20];char *p; printf("请输入小于20的字符串"); scanf("%s",a);//a是数组名,就是指针,代表首地址. p=a; while(*p!='\0')p++; printf("%d",p-a);} 原文地址:https://www.cnblogs.com/T0807/p/9865500.html

loadrunner通过C语言实现字符的替换(只能替换单个字符,慎用)

如果按照普通的定义字符串就会出现以下错误: 解决方法如下: 将双引号改成单引号: lr_searchReplace(abc,"test",' ','+'); Action也可以这些写: void lr_searchReplace(char* inputStr, char* outputStr, char lookupChar, char repChar)     {         char *ptr =inputStr;         char xchar;         int

sql server字符型字段中,替换指定字符的方法

update 表名set 字段=replace(字段,CHAR(13),'') where CHARINDEX ( CHAR(13) , 字段 ) >0 update 表名set 字段=replace(字段,CHAR(10),'') where CHARINDEX ( CHAR(10) , 字段 ) >0

C语言中的整形,字符型,浮点型

1.有符号整形        文章出处http://blog.csdn.net/huguangshanse00/article/details/8469845                     什么时候我也能自己总结 = =. 在C语言中,有符号整形变量a用signed int a表示,通常我们写的int a默认为有符号整形. 根据程序编译器的不同,整形定义的字节数不同.常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个byte(16位):如果是 32位ARM处理器的

字符型变量

我们都知道,除了数字以外还有其他符号,比如字母等等,这些符号就是字符,存储字符的变量就是字符型变量. 一个字符型变量只能存储一个字符,比如time这个单词,就需要四个字符变量来存储. 那么,思考下面几个问题: 字符型变量在计算机内是以什么形式存储的? 答案很显然,也是0110这类的二进制码. 那么,二进制码是怎么变成字符的? 这个问题就比较专业了,就是用到ASCII码.简单地说,就是哪个数字代表哪个字符都统一标准.比如65就代表A,97代表a. 所以实际上,字符型就是个整数. 字符型的定义: c

让人又爱又恨的char(字符型)

今天来总结一下char型,平常写算法的时候对这个东西感觉都有一点绕着走,说到底还是对这部分的知识不熟悉所以有点怕他,不过以后不要怕,今天来总结一下 首先,说到字符型数据类型,char型,恩它是一种数据类型 然后,就是字符型变量 字符型变量的重点是将一个字符存入字符变量中,实际上存入的不是这个字符的形,而是这个字符的ASCII码 输入:getchar(); 输出:putchar(); getchar和scanf的区别在于他可以输入空格 字符型常量: 1.普通 'a' 2.转义 1.‘\t’ 斜杠+