1、字符串指针:
定义:char *变量名 = "字符串内容";//字符串内是常量
作用:用来保存字符串
在c语言中有两种访问字符串的方式
1)用字符串数组
char string[] = "nbheimanb";
注意:存放在栈区,可读可写。
2)用字符串指针
char *变量名 = "字符串内容";//字符串内容是常量
char *str = "nbheimanb";
注意:字符串指针字符串内容是常量,存储在常量区,只可读,不可写。
#include"stdio.h"
#include"string.h"
#include"malloc.h"
int main(void)
{
//"我在黑马"这个字符串存储在常量区
//str 只保存了字符串常量的首地址
char *str = "我在黑马,是真的";
printf("%s\n",str);
//求一个字符串指针指向字符串的长度,不能用sizeof关键字
printf("strlen(str) = %ld\n",strlen(str));
}
2、二维字符串数组:
char ch2[2][3] = {'q','a','d','h'}
//用二维数组保存多个字符串
//第一维保存每个字符串的首地址
//每个字符串的长度不能超过二维的长度
char str[3][5] = {{hgs},{fjgk},{mjgg}};
#include"stdio.h"
#include"string.h"
int main(void)
{
char str[3][5] = {"hgs","fjgk","mjgg"};
for(int i = 0; i<3; i++)
{
puts(str[i]);
}
}
3、char型的指针和字符数组的区别
#include"stdio.h"
#include"string.h"
int main(void)
{
//char 类型指针数组
char * name[3] = {"asdhfsd","adg","dadagh"};
for(int i=0; i<3; i++)
{
puts(name[i]);
}
//字符串指针和字符串数组的区别
//字符串指针:
char *ss = "dsh";
//指向可以改变
//ss是一个指针变量
ss = "hello world!";
//字符数组:
char s1[] = "sakjhdlak";
//s1是一个数组名,是一个常量,不能被赋值
//s1 = "helloworld";
return 0;
}
|
|