C++指针与字符串
来源:互联网 发布:淘宝新宝贝如何引流 编辑:程序博客网 时间:2024/06/07 13:34
C语言里没有字符串数据类型,要想获得字符串的表示形式利用字符数组
#include<iostream>using namespace std;#include<stdlib.h>void main(){char ar[]={'a','b','c','d'};cout<<ar; //字符串后无结束符\0,会有多余打印cout<<endl;char br[]={'a','b','c','d','\0'};cout<<br;cout<<endl;char cr[5]="abcd"; //字符串结尾默认隐藏了\0cout<<cr;system("PAUSE");}
#include<iostream>using namespace std;#include<stdlib.h>void main(){char *p="hello world";cout<<p; //整形的指针,打印指针时只能打印其内部地址//字符指针,打印指针时也是地址,但是这个被看作字符指针后,会打印该指针指向地址内存放的字符串,打印直到遇到\0为止system("PAUSE");}
静态常量区的字符串存储及指针访问
#include<iostream>using namespace std;#include<stdlib.h>#include<string.h>void main(){char *p="hello world"; //hello world存放在内存的静态常量区//指针变量p存储的是该静态常量区的首个字符地址//不能通过指针修改静态常量区的字符,但是可以通过指针访问int length=strlen(p); //strlen计算的是字符串p的有效长度,不算\0for(int i=0;i<length;++i){cout<<p[i];}system("PAUSE");}
字符数组的存储与指针所指字符串的存储形式不同
#include<iostream>using namespace std;#include<stdlib.h>void main(){char *p="hello world"; //hello world位于静态常量区,字符指针存储了字符串首元素的地址char ar[]={'a','b','c','d','\0'}; //自己开辟的存储字符数组空间位于栈区,数组对每个字符变量进行了存储ar[0]='A';}
指针可以通过指针名改变指向,但字符数组不能通过数组名改变指向
#include<iostream>using namespace std;#include<stdlib.h>void main(){char *p="hello world"; //指针p空间存hello world的首地址char *str="abcdef"; //指针str空间存abcdef的首地址p=str; //将指针str的值(abcdef的首地址)赋值给指针p//指针p空间存储了abcdef的首地址,从而改变了指针p的指向system("PAUSE");}指针初始化是把字符串的首地址赋值给指针,但对字符数组初始化是把每个字符存放到数组空间
编译时为字符数组分配若干存储单元,以存放各元素的值,但对字符指针变量,只分配一个存储单元,用于字符串首元素的存放地址
阅读全文
0 0
- C指针与字符串
- C语言:字符串与指针
- c语言字符串与指针
- C/C++ 字符串与指针
- C语言指针-----指针与字符串
- C字符串数组与字符串指针
- c语言:字符串与字符串指针变量
- C/C++学习笔记:指针与字符串
- C语言中的字符串与指针
- 【Linux C】第四章 指针与字符串
- c学习之指针与字符串
- C/C++中字符串与指针 效率
- C语言程序设计进阶-Chap02-指针与字符串
- C语言之字符串与指针
- C语言入门教程18-指针与字符串
- C语言中的指针与字符串
- C 字符串指针与字符数组
- C语言字符串、数组与指针结合
- 一看你就懂,超详细java中的ClassLoader详解
- C++指针与数组
- c# ADO.NET
- 51NOD-1009-数字1的数量
- 在javascript中使用el表达式
- C++指针与字符串
- C++运算符前置++v.s.后置++
- 开放职位512个,基本工资最高26万美元——美国人工智能就业市场全景一览|雷报050期
- 出门问问李志飞:智能音箱市场价格战已经拐偏了消费者
- 你以为人工智能很遥远,但 Google 却打算让每个人都用上 AI
- iis 托管nodejs
- 三星收购AI初创公司Fluenty 为旗下Bixby提升AI服务能力
- 新时代,开启新征程-2017麒麟飞腾自主可控技术交流大会(成都站)
- HDMI 2.1标准正式发布:带宽增至48Gbps,支持10K分辨率