【C数据类型】字符数组、字符串、字符串指针

是字符串定义以及在C语言中字符串是如何表示的 字符数组通常用于需要修改字符串内容的场合,而字符指针则常用于指向常量字符串或动态分配的字符串。):字符串是由一个或多个字符组成的数据类型,可以包含字母、数字、符号和空格等字符。综上所述,字符串和基本类型在数据类型定义、内存存储与分配、赋值与操作、比较与判断以及使用场景等方面都存在显著的差异。字符串:字符串的赋值是将一个字符串对象的引用赋给变量。基本类型:基本类型主要用于表示简单的字符或数字,是编程中不可或缺的基础数据类型。C语言中的字符串以空字符('\0')结尾,这个空字符是字符串结束的标志。 阅读详情

字符串,即把多个字符连在一起,并有顺序的存放。本文主要内容是辨析C语言中存储多字符的三种方式,及其特性。


Table of Contents

字符数组

字符串

字符串指针


 

辨析字符数组、字符串、指针字符串

 

字符数组:char str[]={‘h’,’a’,’h’,’a’};

  1. 占空间为4;
  2. 可任意修改下标元素;
  3. 不可使用<string.h>库函数;

 

字符串:char str[] = “haha”;

  1. 占空间为5(由于‘\0’);字符串都有一个结束符'\0',并且结束符 ‘\0’ 占用一个空间,但是不算作一个串的长度( strlen() );
  2. 可任意修改下标元素;
  3. 随意使用<string.h>库函数;

 

指针字符串:char *pstr = “haha”;

  1. 占空间为5(由于'\0');
  2. 字符串常量,不可任意修改下标元素;
  3. 随意使用<string.h>库函数;

字符数组

把多个字符顺序存放起来就是字符数组。但不论怎样操作,都只是在、而且仅能操作数组而已,就像操作int型数组、float型数组,所以字符数组里没有结束标志这一说法。

申明即初始化、遍历、获取单个元素:

//申明即初始化、遍历、获取单个元素
char CharacterArray1[5] = { 'a','b','c','d','e' };
	int i;
	for (i = 0; i < 5; i++) //遍历字符数组;
	{
		printf("%c", CharacterArray1[i]);
	}
	putchar('\n');
	printf("下标为3的字符数组式:%c\n", CharacterArray1[3]); //获取字符数组里的元素,并输出;

	putchar(CharacterArray1[3]); //输出下标为3的字符数组;

    //字符数组使用%s输出,会有多余部分的错误输出;这时因为以%s(字符串)来解析的话,字符数组里始终没有结束标志!
	//printf("%s\n",CharacterArray1); 输出有多余的错误部分;


先申明再初始化:

char CharacterArray2[5]; //申明
CharacterArray2[0] = 'a'; //对单个元素赋值;
CharacterArray2[0] = 'b';

字符数组不可调用字符串的库函数(如strlen)和%s解析方式,而只能以%c来解析!   

char CharacterArray[] = { 'a','b','c','d','e' }; //字符数组
for (int i = 0; i < strlen(CharacterArray); i++)
{
    printf("%c", CharacterArray[i]); //调用了strlen,输出了不可预料的多余部分!
}

字符串

1,把一个个的字符写成一个串,即为字符串;

2,字符串用双引号,是多个字符组成的串;字符用单引号,有且仅有一个字符;

3,用字符串方式赋值比用字符逐个赋值要多占一个字节,用于存放字符串结束标志'\0'。只有在字符串里才会有结束标志,而在字符数组里结束可以用下标来控制;

4,凡是字符串,一定要处理好结束标志:分割字符串以该标志为遍历的终结符、分割好了存于新串里要添加结束标志;

字符数组向字符串的转化


	char CharacterArray[5] = { 'a','b','c','d','e' }; //字符数组
	char String1[] = { "abcde" }; //字符串
	//或写成:char String2[] = "abcde"; 

	int i; //1,字符数组方式正常输出;
	for (i = 0; i < strlen(String1); i++)
	{
		printf("%c", String1[i]);
	}

	printf("%s\n", String1); //2,字符串方式可以正常输出;
	
	puts(String1); //3,调用字符串库函数输出;

    String1[2] = ‘x’; //对字符串的指定下标位置重新赋值;
    //字符串的操作方式完全兼容字符数组的操作方式,如下标取数、赋值;

字符串的结束标志

	char CharacterArray[5] = { 'a','b','c','d','e' }; //字符数组
	char String[5] = "abcd";

由于字符数组不需要结束标志而只依靠于下标即可完成所有操作,故其的容量就是存储的字符个数;字符串则需要一个单独的空间来保存结束标志’\0’,所以申请5个空间,实际只可用4个空间!


字符串指针

输出方式完全兼容字符数组和字符串:

	char *sp = "ABCD";
	
	printf("%c\n", sp[2]); //调用下标为2的元素;

	printf("sp的元素个数是:%d\n", strlen(sp));
	
	printf("%s\n", sp); //以字符串%s来解析输出;
	puts(sp); //调用库函数输出;

指针字符串常量

        char *str = "XXOO"; //XXOO是字符串常量,这个指针指向它;
	puts(str);
	str = "MMMM"; //对这个指针变量重新赋值,即改变指针的指向;
	puts(str);

	//str[2] = 'h';企图对字符串常量的第3个元素重新赋值,出错,编译能够通过,但是运行期间会发生段错误

	putchar(str[2]);

	puts(str);

字符串指针一旦初始化,不可对字符串里面的某个元素进行操作(赋值、删除);因为指针指向的是一个字符串常量!


 

超详细!新手必看STM32-DMA配置与实验(串口使用DMA发送数据) DMA就是:直接存储器访问。DMA传输数据从一个地址空间复制到另一个地址空间,提供在外设和存储器或者存储器和存储器之间的高速数据传输。 阅读详情

相关推荐

Unity实时控制佳能单反拍照全流程(附EDSDK 3.6.1配置避坑指南)

本文详细介绍了在Unity中实时控制佳能单反相机进行拍照的完整流程,重点提供了EDSDK 3.6.1的配置与避坑指南。内容涵盖从SDK获取、环境搭建、相机初始化、参数设置到实现拍照控制,并深入探讨了实时取景的延迟优化方案与资源管理,旨在帮助开发者高效集成专业相机,提升AR/VR及摄影测量等应用的视觉输入质量。

go5gopher的博客 184

经常会犯的一些低级错误!

1、代码有什么错误? Void test1()  {   char string[10];   char *str1="0123456789";  strcpy(string, str1);  }  Strcpy函数在MSDN中的介绍是把源地址(包括’\0’结束符)一同拷贝到目地址中。 答:虽然程序不会报错,但还是数组越界了。应该把字符数组string长度改为11。

daipan13879429038的专栏 943

WPS专业版自带字体

WPS专业版其中一个好处就是自带了部分有版权的字体,就算你安装了没买授权,他也会给你在系统里面安装上这些字体,至于没授权继续用合不合规我不知道。但是带来的实实在在的好处就是有些子他支持的全啊。 /usr/share/fonts/wps-office/FZWBK.TTF: 方正魏碑_GBK,FZWeiBei\-S03:style=Regular /usr/share/fonts/wps-office/FZFSK.TTF: 方正仿宋_GBK,FZFangSong\-Z02:style=Regular /us

chenqioulin的博客 5697

字符数组和字符串的区别,C语言字符数组和字符串区别详解

C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗? 对于这个问题,大多教科书中的回答是“是”。其实不然,字符数组和字符串是完全不相同的两个概念,千万不要混淆。分析如下所示的示例代码。 #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main(void) {     /*字符数组赋初值...

Hello,小高同学 2万+

MTK-Display技术解析:从MDP到DDP的架构演进

本文深入解析了联发科(MTK)显示技术从MDP到DDP的架构演进。MDP作为多媒体数据预处理中心,负责格式转换与缩放;而DDP则整合了OVL、COLOR、AAL等模块,并引入CMDQ与场景化模式,实现了从分散处理到统一智能调度的飞跃,旨在提升画质、流畅度并降低功耗。

weixin_29218509的博客 253

SIPVicious实战指南:从零开始掌握VoIP渗透测试(Kali Linux环境)

本文为SIPVicious实战指南,详细介绍了在Kali Linux环境下进行VoIP渗透测试的完整流程。从环境准备与工具安装开始,逐步讲解如何使用svmap扫描SIP服务器、svwar枚举PBX分机号,以及svcrack进行密码安全测试,并整合svreport生成报告。旨在帮助安全从业者从零开始,系统掌握这套经典开源工具,在授权范围内有效评估VoIP系统的安全性。

weixin_29327977的博客 537

C语言字符教组占⽤内存怎样算?

C语言字符教组占⽤内存怎样算?

致力于分享在各类技术领域的学习与实践经验,涵盖编程、虚拟化、开源工具、网络安全等。 526

智能预测性维护AI系统实战效率提升:AI应用架构师的技巧分享

在工业领域,预测性维护(Predictive Maintenance, PdM)是降低停机损失、优化维护成本的关键手段。然而,现有系统往往面临三大效率瓶颈数据处理延迟:工业设备产生的海量实时数据(如传感器、PLC)需传输至云端处理,导致预警滞后;模型推理效率:复杂深度学习模型(如ResNet、Transformer)在边缘设备上推理时间长,无法满足实时要求;落地集成困难:与企业现有ERP、MES、SCADA系统对接繁琐,导致“模型好用但业务不用”的尴尬。本文从架构、数据、模型、落地架构设计。

AI天才研究院 744

c语言中字符串详解

仔细讲讲c语言字符串的事

qq1696942593的博客 5万+

NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]

NL2SQL进阶系列(3):Data-Copilot、Chat2DB、Vanna Text2SQL优化框架开源应用实践详解[Text2SQL]

丨汀、的博客 5419

Matlab可调用MODTRAN5封装器之Mod5

MODTRAN 是一个计算地球大气中电磁辐射传输的软件代码。MODTRAN是通过使用具有严格格式的输入文本文件来控制的。这个文件被称为“tape5”,扩展名为.tp5或.ltn。手工创建或编辑这个文件是不方便的。Mod5提供了一组函数来简化MODTRAN用例的处理。这些方法包括将tape5文件格式读取到Mod5类“实例”或“对象”中,更改文件中描述的案例实例,将tape5格式写回文件,在案例上运行MODTRAN并将MODTRAN输出文件中的各种结果读取回Matlab。还有许多绘图方法可用。

qq_19512613的博客 3254

C语言字符串详解

C语言字符串详解

qq_28576837的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

1.e5c语言,C语言基础复习:字符,字符数组,字符串,字符指针

1. 概述数据类型是现实世界信息表示基本元素。字符则是基本数据类型之一,与之对应的是数字。限于字符的数量,一般字符类型都是单字节存储。Linux的shell环境中,shell作为一种弱类型语言,仅存在字符(串)数据类型,需要数字时则会把字符串转换为字符。恰是这种单一的弱类型脚本语言设定,赋予shell环境强大的字符和文本处理能力。本篇则主要介绍C语言种有关字符的知识点。2. 字符2.1 字符定义和...

weixin_31028871的博客 465

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

关于C语言中的字符数组和字符指针

1.C语言中用于保存一个字符串有两种方式:    char *str="hello world"; //字符指针    char string[]="hello world";//字符数组  字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址,str是一个变量,可以改变str使它指向不同的字符串,但不能改变str所指的字符串常量。string是一个数组,可以改变数组中保存的内容

xitongfengxi的专栏 779

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

C语言风格的字符串

在这种赋值的方式中,还可以对字符串的某一个字符进行传入和更改,但是要注意的是要将最后一个不为空的字符赋值为‘/0’,否则将会输出乱码。在c语言中并没有像在java和python中的string的数据类型。但是不可以直接对字符数组名进行赋值,因为数组名是指针。3.是通过指针的方式,将字符串的值直接传给指针。2、通过strcpy函数进行赋值。一共有三种定义字符串的方式。1、通过字符数组直接初始化。

2401_87562422的博客 570

字符数组和字符串常量(加上常量更好理解)的区别,C语言字符数组和字符串(常量)区别详解,字符串指针和字符数组区别

C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串。那么,字符数组就一定是字符串吗? 1字符串和字符串结束标志 在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。前面介绍字符串常量时,已说明字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符'\0'存入数组,并以此作为该字符串是否结束的标志。有了'\0'标志后,就不必再用字符数组的长度来判断字符串的长度了。 C语言允许用字符串的方式对数组作初始化赋值。 例如: char c[]...

二进制模----细微行动改变影响世界 660

嵌入式linux开发笔记: C指针

/* * printf_test.c V1.0 * Copyright (c) 2017 Shenzhen 100ask Technology Co.Ltd.All rights reserved. * http://www.100ask.org * 100ask.taobao.com * * 测试平台: ubuntu16.04(64位机器)...

我思故我在! 393

轻松高效拿捏C语言20常用的字符串函数

主要讲解C语言中字符串的常用函数

程序员Feri 1191

C学习笔记:数据类型

C 语言数据类型有以下几类。 基本类型: 整数类型 小数类型 派生类型: 指针类型 数组类型 结构类型 共用体类型 枚举类型 空类型 数组 数组 Arrray 就是一些具有相同类型的数据的集合,这些数据在内存中依次挨着存放,彼此之间没有缝隙。 C 语言数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数...

weixin_34405354的博客 152

C语言中关于字符串、指针阅读方法的总结

C语言中关于字符串、指针阅读方法的总结知识点敲黑板先看这里注意:字符串指针阅读方法总结 知识点 字符串 指针阅读方法 敲黑板先看这里 你觉不觉得C语言基础知识概念在头脑里没有形成知识体系?是否比较模糊比较乱?这就对了?我之前也是,有些知识点时间长了容易忘或者混淆,有些初学者抓不住重点觉得C语言复杂,难!实不相瞒,我也是这样的感受,于是我想是时候整体的把C语言给好好的总结一下了,这样形成一个知识体...

qq_45142474的博客 722

C/C++知识总结 五 复合数据类型 壹(数组、字符串与string、结构)

C/C++复合数据类型 壹(数组、结构) 数组 数组的意义、定义与创建 一、二维数组应用 字符数组与字符串处理函数 数组与指针———关系密切 数组的意义与定义创建 意义:反映数据间的特点(通过把同一类数据归纳,就形成了数组)和提高处数据的效率(通过数组与循环二者相配合,可以快速处理大量数据) 定义:一个数组元素是同一种数据类型的有序集合,数组通过下标运算符 [] 来访问数组中的元素,...

做一只熊猫不好吗? 411

初始C语言-数组&字符数组与字符串

我们可以定义一个指针,把这个地址赋值给它,那么我们定义指针的值那个地址编号。指向的就是那个变量的值的资质。但是对于这种情况,数组name里面就只有三个字符,没有多的 \0,明面上存的什么就是什么,不会有多的 \0;确认所申请的内存的大小,谨防越界。&a 就是a的地址(编号) , 实质上也可以理解为他是一个 指向 a数据的存放的内存区域地址编号。是专门用来存储字符数据的数组,其每个元素存放一个字符,定义形式与一般数组类似,但元素类型为。更加严重的后果,如果访问的时系统关键的数据,则有可能造成系统崩溃。

kklovecode的博客 1034

C++数据类型转换

【代码】C++数据类型转换。

m0_73344394的博客 281

file是c语言自带的数据类型吗_C语言中基本的数据类型包括

1/221、外部变量对程序中地任一函数而言,它们是()A存在地;B可直接存取地;C不可见地;D不可直接存取地2、下列说法中错误地是()A变量地定义可以放在所有函数之外;B变量地定义可以放在某个复合语句地开头;C变量地定义可以放在函数地任何位置;D变量地定义可以不放在本编译单位中,而放在其它编译单位中3、FILE*p地作用是定义了一个文件型指针(或指向文件地指针),其中地FILE结构是在(...

weixin_35598854的博客 273

C字符串和C++字符串

转自 http://www.cnblogs.com/MuyouSome/   在C中,并没有字符串这个数据类型,而是使用字符数组来保存字符串。C字符串实际上就是一个以null(‘\0’)字符结尾的字符数组,null字符表示字符串的结束。需要注意的是:只有以null字符结尾的字符数组才是C字符串,否则只是一般的C字符数组。C字符串定义时可以利用”=”号进行初始化,但是以后不能利用”=”对C字符串进行赋

芒果东城 341

C语言 计算字符串长度 指针(-减)指针法

#include<stdio.h> int my_strlen(char *b) { char *c=b; char *d=b; while( *d != '\0') d++; return d-c; } int main() { char a[]="my name is li hua"; int lenth=my_strlen(a); printf("%d",lenth); return 0; } 1如何正确输入数组-指针 字符串:以 0 结束的字符数组(这里的 0,就.

weixin_62688213的博客 842
上一篇: 【C数据类型】数组(一维、动态一维、二维、动态二维、三维)
下一篇: Python数据类型 — 字符串
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值