首页 > 其他分享 >C语言字符数组,字符指针,指针数组(字符串)的比较与使用

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

时间:2024-08-08 11:49:29浏览次数:14  
标签:字符 abc char 数组 字符串 指针

参考文档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"仅仅代表其第一个字符的地址

 

标签:字符,abc,char,数组,字符串,指针
From: https://www.cnblogs.com/y593216/p/18348655

相关文章

  • Java中一维数组的学习
    一维数组目录一维数组创建数组null数组的遍历for循环遍历数组for-each循环遍历while循环遍历do-while循环遍历数组的反向遍历创建数组Java语言使用new操作符来创建数组,语法如下:arrayRefVar=newdataType[arraySize];上面的语法语句做了两件事:使用dataType[arraySize]......
  • Java数组篇[1]:数组的定义和声明
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者......
  • Java数组篇[2]:数组的初始化
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者......
  • C语言 --- 指针
    目录1. 概念2.指针变量初始化2.1被调修改主调 2.2 指针变量的引用3.指针+一维整型数组3.1指针的运算4.指针+一维字符型数组4.1指针+字符串1. 概念指针就是地址 --- 内存单元的编号指针也是一种数据类型---这种数据类型专门用来处理地址......
  • 在 HTTPX 或请求中传递特殊字符而不进行编码
    我使用的API(wunderground)要求日期格式为“2001-01-0110:32:35”,(他们声称)应该将URL转义为“2000-01-01+10%”3A32%3A35"。HTTPX和Requests都做得很好,只是它们将+编码为%2B,这是API不期望的。如何防止请求或HTTPX对+进行编码?示例代码:auth={......
  • python joblib.load 发生错误:协议 0 中的持久 ID 必须是 ASCII 字符串 在 GCP 云运行
    总体而言:我尝试使用Cloudbuild和Cloudrun构建BERT模型。我将模型(参数)和元数据(标签)保存在GCPCloudStorage中。但是,我遇到了通过joblib.load()加载metadata.bin文件的错误。我的metadata.bin文件包含UTF-8字符,但joblib.load需要ASCII字符。在......
  • (nice!!!)LeetCode 3130. 找出所有稳定的二进制数组 II(动态规划dp)
    题目:3130.找出所有稳定的二进制数组II思路:大佬的思路classSolution{public:intmod=1e9+7;typedeflonglongLL;LLsta[1010][1010][2];//当前还有i个0、j个1时,第i+j的位置放置u,可以组成的合法数目LLdfs(inti,intj,intu,intlimit)......
  • new_d_array()函数接受一个int类型的参数和double类型的参数。该函数返回一个指针,指向
    /*下面是使用变参函数的一段程序:include<stdio.h>include<string.h>incude<stdarg.h>voidshow_array(constdoublear[],intn);double*new_d_array(intN,...);intmain(void){doublep1;doublep2;p1=new_d_array(5,1.2,2.3,3.4,4.5,5.6);p2=new_d_ar......
  • C语言----字符串的匹配
    字符串的匹配实例说明:        本实例实现对两个字符串进行匹配操作,即在第一个字符串中查找是否存在第二个字符串。如果字符串完全匹配,则提示匹配的信息,并显示第二个字符串在第一个字符串中的开始位置,否则提示不匹配。实现过程:        (1)在TC中创建一个C文......
  • 反转字符串II(541)
    题目描述给定一个字符串s和一个整数k,从字符串开头算起,每计数至2k个字符,就反转这2k字符中的前k个字符。如果剩余字符少于k个,则将剩余字符全部反转。如果剩余字符小于2k但大于或等于k个,则反转前k个字符,其余字符保持原样。解题思路如果按照我们暴力解法的话我......