C语言字符数组,字符指针,指针数组(字符串)的比较与使用

参考文档https://blog.csdn.net/yuabcxiao/article/details/89600907

 

字符数组与字符指针

在C语言中,可以用两种方法表示和存放字符串:
(1)用字符数组存放一个字符串

char str[]="I am happy";

(2)用字符指针指向一个字符串

  char *str="I am happy";

字符数组

#include<iostream>
using namespace std;
int main()
{
    char ca[]="abc";//定义字符数组并初始化
    cout<<ca<<endl;
    return 0;
}

注意:字符数组的整体赋值只能在字符数组初始化时使用,不能给字符数组的赋值,字符数组的赋值只能通过对其元素一一赋值,如下:(数组初始化式只能用于声明同时赋值的情况下)

下面的赋值方法是错误的:
char str[20];
str="I am happy";  
对字符数组的各元素逐个赋值。
char str[10]={'I','','a','m','','h','a','p','p','y'};

字符指针

字符指针:字符串指针变量本身是一个变量,用于存放字符串的首地址。而字符串本身是存放在以该首地址为首的一块连续的内存空间中并以‘\0’作为该串的结束。

复制代码
#include<iostream>
using namespace std;
int main()
{
    char *ca="abc";//定义字符指针并初始化
    cout<<*ca<<endl;//输出a;
    cout<<*(ca+1)<<endl;//输出b;
    printf("%s\n",ca);//输出abc;

return 0; }
复制代码

注意:若字符串常量出现在在表达式中,代表的值为该字符串常量的第一个字符的地址。所以”abc”仅仅代表的是其地址。原声明方式相当于以下声明方式:

char *a;  
a="abc";//这里字符串"abc"仅仅代表其第一个字符的地址

 

posted @   小小仓鼠  阅读(94)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示