const char*,char *const,const char*const

const char * cp;cp
is a pointer to const char;cp是一个指针变量,指向一个常量字符创,注意cp是指针变量,指向const char,那么意味着cp可以指向其他的const char;但需要注意的是cp指向的是const char,所以不能通过cp来修改const char;cp可以指向其他其他的const char和通过cp来修改const char 是完全不同的概念,注意区分

char const * cp;同上,辨别技巧,const都在*的左边,所以是同一个意思。

char * const cp;cp
is a const pointer to char,那么显然cp是一个const point,那么他是不能改变的,但是它所指向的内存块的内容可以被改变

const
char * const cp;
cp is a const pointer to const char,

时间: 2024-10-17 02:14:24

const char*,char *const,const char*const的相关文章

C++ Primer 学习笔记_25_类与数据抽象(11)--const 用法小结、static与const以及static const(const static)

一.const 用法总结 1.可以对const 的用法做个小总结: const int n = 100;  //定义常量 const Test t(10); const int & ref = n;   //const引用 int& ref = n;  //Error [const与指针] const int* p; //const出现在*前面,表示*p是常量 (*p = 200; //Error) int * const p2;  //const出现在*后面,表示p2是常量 (p2 =

iOS—— static和const联合使用;使用static const 与 #define

static和const联合使用:   static将一个全局变量变成局部变量   const将一个局部变量变成局部常量 // 定义了一个局部常量      static const CGFloat ZMJRed = 0.4; 使用static const 与 #define: 使用static const修饰变量和宏定义的比较        相同点            都不能再被修改            一处修改,其它都改了        不同点            static con

char *p="abc" 与 char p[]="abc" 的区别

本文来源于网络 出处:点我 有这样一段代码: #include "stdio.h" char *get_string_1() { char p[] = "hello world!"; return p; } char *get_string_2() { char *p = "hello world!"; return p; } int main() { char *p; p = get_string_1(); printf("get_s

unicode下各种类型转换,CString,string,char*,int,char[]

把最近用到的各种unicode下类型转换总结了一下,今后遇到其他的再补充: 1.string转CString string a=”abc”; CString str=CString(a.c_str()); 或str.format("%s", a.c_str()) 2.int转CString Int a; CString Cstr; Cstr.Format(_T("%d"),a); 3.char 转 CString CString.format("%s&qu

函数中char c[]="hello"与char * c = "hello"区别 -- C

char c[]="hello" 是局部数据. c[0] = 't'; // ok char * c = "hello" 全局数据,在静态存储区域. *c = 't'; // false #include <stdio.h> /* 例子一 */ const char * strA() { /* 正确 通过static开辟一段静态存储空间 */ static char str[] = "hello"; /* 错误 分配一个局部数据,函数

C语言 结构体指针赋值 incompatible types when assigning to type &#39;char[20]&#39; from type &#39;char *&#39;

strcpy(pstudent->name, "guo zhao wei "); 为什么错误,该怎么写,(红色行) 追问 为什么不能直接赋值啊, 追答 用char nnnn[20]定义的,用strcpy 用char *ppp定义的,用=来赋值 C语言 结构体指针赋值 incompatible types when assigning to type 'char[20]' from type 'char *'

C# byte[]与char[]、string与char[]、byte[] 与 string 互转

1. byte array -> char array Byte[] b=new byte[5]{0x01,0x02,0x03,0x04,0x05}; Char[] c=Encoding.ASCII.GetChars(b); 2. char array -> byte array Char[] c=new char[5]{a,b,c,d,e}; Byte[] b=Encoding.Default.GetBytes(c); Char[] c=new char[5]{a,b,c,d,e}; Byt

char str[] = {&quot;abcd&quot;}和 char* str = {&quot;abcd&quot;}的区别

char str[] = {"abcd"}和 char* str = {"abcd"}的区别 char* get_str(void) { char str[] = {"abcd"}; return str; } char str[] = {"abcd"};定义了一个局部字符数组,尽管是数组,但它是一个局部变量,返回它的地址肯定是一个已经释放了的空间的地址. 此函数返回的是内部一个局部字符数组str的地址, 且函数调用完毕后 此

c++中new char(10) 和 new char[10]的区别

今天随手写个程序,在网上随意找个代码照着写,无意中使用了 char *p = new char(10); 来创建char数组,而且在netbeans上编译运行都没有问题,结果在oj上一直报runtime error,放在同学计算机上用codeblock运行也报错. 后来发现是这个分配的问题: char *p = new char[65]; // 分配一个大小为65的char数组 char *p = new char(65); //分配一个char ,并用65来初始化值 后来程序中改成new ch

进制数相加 char* sum(int n,char* num1,char* num2)

功能: 第一个参数n 代表多少进制,最大就是36进制,从0到9,然后a到z代表10到35. char* num1 和char* num2 分别接受两个数字字符串,然后相加得到的结果返回 #include<iostream> using namespace std; //n 表示进制数 //a 表示操作数1 //b 表示操作数2 //jy 表示进位数 //jy1 是否进位 char sum1(int n,char a,char b,int jy,int* jy1) { int num1=0; i