指针可以指向一个字符串字面量,可以指向一个字符数组,可以指向一块动态分配的内存单元:

char *s1, *s2, *s3 = “abcde”;

char ch[] = “fff”;

s1 = ch;

s2 = new char[10];

strcpy(s2, “fgh”);

用指针表示的字符串可以直接作为字符串操作函数的参数。但必须注意,如果该指针指向的是一个字符串常量时,则使用是受限的。如不能作为strcpy的第一个参数,不能用下标的方法去修改其中的元素,所以一般都冠以const,如const char *s3 = “abcde”;

由于在C++中,数组名被解释成指向数组首地址的指针。因此,字符串是用一个指针变量表示,我们可以把此指针变量解释成数组的首地址,通过下标访问字符串中的字符。如string[3]的值是d同时,与上述直接指向一个常量不同,可以使用下标的形式来修改字符数组的元素。

字符串作为字符数组传递时不需要指定长度。因为字符串操作的结束是依据‘0,如一个记录串中单词的个数的函数:

#include Using namespace std;int word_cnt(const char *s){ int cnt = 0; while (*s != '0') { while (isspace(*s)) ++s; //跳过空白字符 if (*s != '0') { ++cnt; //找到一个单词 while (!isspace(*s) && *s != '0') ++s; //跳过单词 } } return cnt;}

一个二级指针可以指向一个字符指针数组,如main()函数的参数就可以包含一个字符指针数组:

int main(int argc, char *argv[])

如在命令行中执行包括有字符指针数组的程序,可以在其中跟随n个定义的字符串:

#include int main(int argc, char *argv[]){ int i; cout << "argc=“ << argc << endl; for(i=0; i

假设生成的执行文件myprogram.exe,

在命令行输入:myprogram

输出结果:

argc=1 argv[0]=myprogram

在命令行输入:myprogram try this

输出结果:

argc=3 argv[0]=myprogramargv[1]=try argv[2]=this

以下是一个二级指针,就是指针指向的指针才指向具体的非地址值:

#include using namespace std;int main(){  char *city[] = {"aaa

c 将数字数组转成字符串_C+|用指针指向字符串字面量、字符数组及字符指针数组...相关推荐

  1. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数...

    http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array('foo'=>'bar', 'b ...

  2. C语言_字符串的地址以及指向字符串的指针变量的定义

    一.字符串的地址以及指向字符串的指针变量的定义. 1. 字符常量:用单引号括起来的一个字符.2. 字符串常量:用双引号括起来的一串字符.3. 注意:由于变量只能存放一个字符,所以字符串只能存储在数组当 ...

  3. 字符串指针——指向字符串的指针

    转载自:字符串指针 字符串指针--指向字符串的指针 C语言中没有特定的字符串类型,我们通常是将字符串放在一个字符数组中,这在<C语言字符数组和字符串>中已经进行了详细讲解,这里不妨再来演示 ...

  4. 【关于如何输出字符串指针指向字符串地址】

    在研究字符串指针时发现一些与整形数组指针反常的现象,于是决定深入了解一下,以下是本人的拙见,欢迎大佬指正. #include<iostream> using namespace std; ...

  5. 指针指向字符串常量和给字符数组赋值字符串常量的本质

    众所周知任何类型的指针在32位模式下大小都为4BYTE,很多人对数组和指针并不能很好的区分它们的区别,首先在C语言层面,数组名是一个常量不可修改,而指针可以随意指向,其次如果在a.cpp中定义了 ch ...

  6. c语言向文件中写入字符串_C语言中定义字符串的两种方式及其比较

    先看如下代码: 以上用两种方式定义一个字符串: 1.定义一个char * 类型指针,指向字符串首字符首地址. 2.定义一个数组,数组里存放元素为字符串各个字符+'0',其中'0'为码0值,编译器会自动 ...

  7. c语言编程字符串_C编程中的字符串

    c语言编程字符串 Strings in C programming are an array of characters with a NULL character ('\0') appended a ...

  8. C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)

    数组定义: char acBuf[sizeof(TRANS_HEAD_S) + sizeof(USER_HEAD_S) + 4] = {0}; 结构体定义: typedef struct {int i ...

  9. c语言中指针数组赋值字符串,C语言—用结构体指针给数组赋值(结构体指针指向字符串,给字符串赋值)...

    数组定义: char acBuf[sizeof(TRANS_HEAD_S) + sizeof(USER_HEAD_S) + 4] = {0}; 结构体定义: typedef struct { int ...

最新文章

  1. matlab创建数组对象,MATLAB一维数组(向量)的定义
  2. 【CODEVS2577】医院设置
  3. 怎样为企业挑选正确的EDR解决方案
  4. 多语言网站设计需要注意的问题
  5. python opencv调用cuda_Win10使用VS2019从源码编译OpenCV 4.4 + CUDA 11.0 + Cudnn 8.0 + python3
  6. Flutter进阶—实现动画效果(六)
  7. 二维平面中二维向量的叉乘 得到的向量,x、y方向上的分量必定为0
  8. bzoj5369loj6433 [Pkusc2018]最大前缀和
  9. 计算机网络技术的职业倾向,(职业规划)计算机网络技术专业个人职业生涯规划书(8页)-原创力文档...
  10. Navicat批量修改数据库某一属性初始值
  11. 16福师硬盘是计算机的,福师16春《计算机应用基础》在线作业一
  12. Excel基础知识一:Excel功能区、单元格快速定位与选择、Ctrl与Shift的配合使用
  13. 为什么每次圣斗士出招前都要大喊一下大招?
  14. 教师运用计算机技术的难点,浅谈运用电脑技术进行备课的几点优势
  15. 阴历转阳历java_GitHub - opprime/calendarist: 一个可实现阳历、阴历、干支历间相互转换的JAVA工具...
  16. Java选择题(十八)
  17. 码农:用git怕丢代码,每次都备份,同事:不学习的人真可怕!
  18. CSDN cdsn显示发布频繁 请稍后重试 和保存草稿不成功 的解决办法
  19. 手持式信号综合分析仪 天馈线驻波比频谱分析仪 天馈线+频谱+干扰分析仪 4.4GHZ无线综合测试仪
  20. ubuntu下mplayer 使用(3)-使用手册(中文)

热门文章

  1. python 判断类是否存在某个属性或方法
  2. mysql创建分区是否存在_mysql中如何判断是否支持分区
  3. 从零点五开始用Unity做半个2D战棋小游戏(十)
  4. 科技感的动态设计方法-1
  5. 观点:再见Objective C?程序员眼中的Swift
  6. 故事工程学:人工智能和程序化叙事生成
  7. WPF游戏,使用move游戏开发
  8. 风雨彩虹,铿锵玫瑰——女足夺冠
  9. Tomcat和Resin有什么区别,工作中你怎么选择?
  10. IPC介绍——10个ipcs例子