const char*

简介:

关于const char*的例子


#include<stdio.h>

int main()
{
	const char *p = "123";

	p[1] = '3';  //会报错
	p = "456";  //不会报错


	printf("%s\n",p);
	
	return 0;
}


"123"是常量,放在代码区,不可修改,所以需要加上const char *,这样编译的时候,如果直接p[1] = 1,编译器就知道你给const变量赋值,那就报错了。 char *p = "123"; p[1] = '3'; 编译还是能过去的,不报错,但是程序执行的时候,会发生不可预知的错误,因为你对代码区的常量进行了修改。


char *const p 修饰指针为常量 指针指向内容可以是变量~既 p++这样的操作不合法 *p='3' 合法

const char * p 是p指向的内容是常量~p是变量~
~既 p++合法  *p='3' 不合法



相关文章
C++ --- error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”
C++ --- error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”
303 0
|
5月前
|
C++
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
E0144 “const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
|
6月前
|
C++
【C++】std::string 转换成非const类型 char* 的三种方法记录
【C++】std::string 转换成非const类型 char* 的三种方法记录
170 0
|
6月前
|
C++
无法将参数1从“const char [6]”转换为“char *”的解决方法
无法将参数1从“const char [6]”转换为“char *”的解决方法
|
关系型数据库 MySQL C++
类型收窄 error C2397: conversion from ‘const int‘ to ‘char‘ requires a narrowing conversion
类型收窄 error C2397: conversion from ‘const int‘ to ‘char‘ requires a narrowing conversion
183 0
|
C++
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
183 0
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
map使用const char*作为key值查找注意事项
map使用const char*作为key值查找注意事项
error C2664: “StrCmpW”: 不能将参数 2 从“const char [12]”转换为“PCWSTR”
error C2664: “StrCmpW”: 不能将参数 2 从“const char [12]”转换为“PCWSTR”
117 0
vs2017 :C2440 错误,无法从 const char[] 转换为 char*问题解决
vs2017 :C2440 错误,无法从 const char[] 转换为 char*问题解决
1014 0
vs2017 :C2440 错误,无法从 const char[] 转换为 char*问题解决