用指针定义的字符 , 会分配 到 字符串常量中去 ,是不可改变的 。
这个课件上有 。
/*
1.常量区
存放一些常量字符串
2.堆
对象
3 栈
局部变量
掌握:
1,利用数组
char name[] = {}="";
字符串里面的字符是可以修改的
经常修改
2.利用指针
char *name =" ";
字符串里面的字符其实是一个常量字符串,里面的字符是不能修改
字符串经常使用
*/
#include <stdio.h>
int main()
{
char *names[5]={"jace","jack","rose"}; // *name[]=&name[] []= name[]
//char names2[2][10] = {"jace","jack","rose"};
printf("%s\n",names[0]);
printf("%c\n",*names[0]); // 此时 是以 name[0] 再为 一个字符串。
char name[20];
printf("请输入姓名:\n");
scanf("%s",name );
printf("%c\n",name[3]);
//printf("刚才输入的字符串是:%s\n",name);
return 0;
}
//字符串数组 。
void test2(){
//char *name = "jack";
//char *name2= "rose";
//整型数组 , 指针数组
//int ages[5];
//指针数组(字符串数组)
char *names[5]={"jace","jack","rose"}; // *name[]=&name[] []= name[]
//char names2[2][10] = {"jace","jack","rose"};
printf("%s\n",names[0]);
printf("%c\n",*names[0]);}
void test()
{
//字符串变量
char name[] = "itcast";//栈 , 局部变量 ,可以随时改
name[0]= 'T';
printf("%s\n",name);//字符串输出
// "it"='i'+'t'+'\0'
//指针变量name2指向了字符串的首字符
//字符串常量
char *name2 = "it";//char *name=name 。 常量 区 , 不可随意更改。
char *name3 = "it";
// *name2 = 'T';//系统崩溃
printf("%p\n%p\n",name2,name3);
printf("%c\n",*name2);
printf("%s\n",name2); // 字符串 输出
} |