一、字符数组中直接赋值
我们最习惯的写指针是引用一个中间量实现(也就是数组),现在我们用字符串赋值,和数组传参一样。
int main()
{
char* p="abcdef";
printf("%s\n",p);
return 0;
}
字符串这里是常量字符串,赋值时是首个字符的地址。
这个写法在内存中的分配
我们是先开创一片内存空间,然后将字符串的首字符的传给我们指针变量。
特别注意:
我们这里是常量字符串,我们是无法对字符串进行修改的。
二、利用笔试题深层理解字符数组
int main()
{
char arr1[]="abcdef";
char arr2[]="abcdef";
char* p1="abcdef";
cahr* p2="abcdef";
if(p1==ap2)
{
printf("hehe\n");
}
else
{
printf("haha\n");
}
return 0;
}
输出结果为:hehe
分析:虽然我们的常量字符串是相同的,但是在开创内存空间的时候,我们是不会因此多开辟一片空间
内存分配: