30深入理解C指针之---字符串和数组
一、字符串与数组
1、定义:使用字符数组表示字符串
2、特征:
1)、可以直接使用字符串字面量初始化字符数组
2)、声明后,赋值就只能使用字符串操作函数strcpy函数赋值
3)、可以使用数组的一一赋值
4)、可以使用数组的整体赋值
5)、无需而外申请内存空间
3、应用:
#include <stdio.h>
#include <string.h> int main(int argc, char **argv)
{
char arrCh1[] = "Sound";
char arrCh2[] = {'S', 'o', 'u', 'n', 'd',};
char arrCh3[];
arrCh3[] = 'S';
arrCh3[] = 'o';
arrCh3[] = 'u';
arrCh3[] = 'n';
arrCh3[] = 'd';
arrCh3[] = '\0';
char arrCh4[];
strcpy(arrCh4, "Sound"); printf("arrCh1: %s\n", arrCh1);
printf("arrCh2: %s\n", arrCh2);
printf("arrCh3: %s\n", arrCh3);
printf("arrCh4: %s\n", arrCh4); return ;
}
1)、无需字符数组的最后一个是'\0',单个一一赋值时,需要特别留意,最后要加上第14行的代码,
2)、为字符数组申请内存空间时,一定要比需要的多一个字节,存放'\0'结束符
3)、为字符数组整体赋值时,不需要将最后一个赋值为'\0',但是数组空间必须比需要的多一个字节
4)、直接使用字符串字面量为字符数组赋值,就无需指定大小
30深入理解C指针之---字符串和数组的更多相关文章
- 32深入理解C指针之---字符串操作
一.字符串操作主要包括字符串复制.字符串比较和字符串拼接 1.定义:字符串复制strcpy,字符串比较strcmp.字符串拼接strcat 2.特征: 1).必须包含头文件string.h 2).具体 ...
- 27深入理解C指针之---字符串基础
一.字符串:是以ASCII字符NUL结尾的字符序列,NUL表示为\0 1.定义:将字符按顺序存储在数组中,以NUL结尾. 2.特征: 1).每个字符串长度只是包含所有的字符,不包括最后的NUL,手动分 ...
- C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)
#include "pch.h" #include <iostream> #include<stdio.h> int main() { // std::co ...
- 图解c/c++多级指针与“多维”数组
声明:本文为原创博文,如有转载,请注明出处.若本文有编辑错误.概念错误或者逻辑错误,请予以指正,谢谢. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更 ...
- 图解C/C++多级指针与多维数组
声明:本文转自 chenyang_yao ,欢迎阅读原文. 指针与数组是C/C++编程中非常重要的元素,同时也是较难以理解的.其中,多级指针与“多维”数组更是让很多人云里雾里,其实,只要掌握一定的方法 ...
- 深入理解C指针之五:指针和字符串
原文:深入理解C指针之五:指针和字符串 基础概念 字符串可以分配到内存的不同区域,通常使用指针来支持字符串操作.字符串是以ASCII字符NUL结尾的字符序列.ASCII字符NUL表示为\0.字符串通常 ...
- 33深入理解C指针之---通过字符串传递数据
一.传递字符串:在函数的参数列表中,将参数声明为char指针即可实现通过字符串传递参数 1.特征: 1).字符串以char指针的形式传递,一般是const指针传递: 2).使用字符数组声明字符串,调用 ...
- 31深入理解C指针之---指针和字符串
一.字符串与指针 1.定义:使用字符指针表示字符串 2.特征: 1).可以直接使用字符串字面量初始化字符指针 2).声明后,赋值就只能使用字符串操作函数strcpy函数赋值 3).可以使用类似于数组的 ...
- 深入理解C指针之四:指针和数组
原文:深入理解C指针之四:指针和数组 数组是C内建的基本数据结构,数组表示法和指针表示法紧密关联.一种常见的错误认识是数组和指针完全可以互换,尽管数组名字有时可以当做指针来用,但数组的名字不是指针.数 ...
随机推荐
- 编译-LAMP基于fastcgi
前言 最近没更新新篇幅了,今天就来点干活,过多的也不说了下面着手干!干!干! 准备环境 centos7.5 apr-1.6.3.tar.gz apr-util-1.6.1.tar.gz h ...
- 快速排序和快速选择(quickSort and quickSelect)算法
排序算法:快速排序(quicksort)递归与非递归算法 TopK问题:快速选择(quickSelect)算法 import java.util.*; import java.lang.*; publ ...
- 私有DockerHub搭建
docker简介 一个开源的应用容器引擎,可以用来打包程序,可以包入依赖环境,这样只需要提供docker image即可,类似于虚拟机,但是更轻量级. 几个概念: Paas,platform as a ...
- H5bulider中的微信支付配置注意事项
一.云打包安卓自定义证书的生成: 签名算法名称: SHA1withRSA主体公共密钥算法:1024 位 RSA 密钥密钥库类型:JKS 1.下载JDK1.6安装,切换到bin目录,打开命令行: 2.生 ...
- Linux 用户管理(一)
一.基础知识介绍 用户 用户组的概念 每个文件和进程,都需要对应一个用户和用户组 linux 系统通过UID和 GID识别用户和组 用户名相当于人名(给人看) UID和GID相当于身份证(系统用的) ...
- Python基础——类
创建类 class people: '帮助信息:dsafdaf' #所有实例都会共享的 number=100 #构造函数,初始化的方法,当创建一个类的时候,首先会调用它 def __init__(se ...
- Kattis - doubleclique (图论)
From : North American Invitational Programming Contest 2018 给你一个图,以及它的补图.如果部分点在原图中是团,并且其他的所有点在补图中也是团 ...
- Splay的用法
splay区间增减查询 #include<cstdio> #include<algorithm> using namespace std; ; const int INF = ...
- python之路 --- python模块初认识&数据类型
一.模块初识 首先,文件名不能和导入的模块名称一样.因为系统默认先从当前文件寻找模块名,如果文件名和导入的模块名称一样的话,就相当于自己调用自己,会找不到相应的方法的. sys模块 sys.path ...
- python--eclipse第一步总结
1.SyntaxError: Non-UTF-8 code starting with '\xc4' in file C:\Users\yangqiong\workspace\create.报错 解决 ...