字符串常量
存储在静态常量区,静态常量区的数据只能被访问、不能被修改
字符串数组
数组存放在堆栈区,堆栈区的数据可以被修改
代码:
#include<iostream>
using namespace std;
void main()
{
//str++ 不能++,数组名为指针常量没有指针p++的功能
char str[]="Hello";
char *p="Hello";
//&p保存的是字符串常量的地址 p为H的地址
//&str为数组的地址,str为数组首元素的地址 二值一样
//p++可以,因为表示一个指针指向了字符串
}
#include<iostream>
using namespace std;
void main()
{
//字符指针
char *str="hello"+1; //"hello"---->当成字符指针 p+1
char str1= *"hello";//*p
char str2="hello"[3];//p[3]
}
将10进制的数转化成16进制
#include<iostream>
using namespace std;
char * Convert(unsigned long val);
void main()
{
unsigned long s=435;
char *str = Convert(s);
cout<<str<<endl;
}
char* Convert(unsigned long val)
{
//让buffer的生存作用域变长
static char buffer[sizeof(unsigned long)*2+1];
int mod ;
for(int i=sizeof(unsigned long)*2-1;i>=0;i--)
{
//利用字符指针"0123456789"===>p p[3]
buffer[i]= "0123456789ABCDEF"[val%16];
/*
mod = val%16;
if(mod>10)
buffer[i]=(mod-10)+'A';
else
buffer[i]=mod+'0'; */
val /=16;
}
return buffer;
}