当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

字符串数组与字符指针的区别

更新:02-07 整理:39baobao.com
字体:

[C语言qsort函数对char型strmn数组的排序]// 这样写就OK啦。 int cmp(const void *a, const void *b) { char *aa = (char *) a; char *bb = (char *) b; return strcmp(aa,bb); } // const void *a是表示一个指向co...+阅读

一、 读写能力

char *a = “abcd”; 此时"abcd"存放在常量区。通过指针只可以访问字符串常量,而不可以改变它。

而char a[20] = “abcd”; 此时 "abcd"存放在栈。可以通过指针去访问和修改数组内容。

二、用法

在编程过程中如果只涉及到对字符串的读取,那么字符数组和字符串常量都能够满足要求,如果有写入(修改)操作,那么只能使用字符数组,不能使用字符串常量。

C语言有两种表示字符串的方法,一种是字符数组,另一种是字符串常量,它们在内存中的存储位置不同,使得字符数组可以读取和修改,而字符串常量只能读取不能修改。

三、存取效率

char *a = “abcd”; 存于静态存储区。在栈上的数组比指针所指向字符串快,因此慢。

而char a[20] = “abcd”; 存于栈上,更快。

本文地址:https://www.39baobao.com/show/29_37311.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

C语言中 memset函数都可以给什么类型的数组清零任何类型的数组都可以,实际上memset函数是对某一个地址以及该地址之后的一串空间进行赋值操作,只要是地址值,都可以被赋值。 1、memset是计算机中C/C++语言函数。将s所指向的某...

C语言中对字符串进行操作的标准库函数有哪些1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 s...

C语言转义字符%d表示十进制有符号整数 \n表示回车换行 \t表示横向跳到下一制表位置(每个制表位置相差8个字符) \b表示退格,将当前位置移到前一列 这段代码就是输出inum1,inum2,inum3 至于\n,...

c语言中转义字符是什么意思转义字符C语言表示字符种特殊形式通常使用转义字符表示ASCII码字符集打印控制字符和特定功能字符用于表示字符常量单撇号( ')用于表示字符串常量双撇号( ")和反斜杠( \)等转义字符...

在c语言中转义字符是什么转义字符是C语言中表示字符的一种特殊形式。通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,如用于表示字符常量的单撇号( '),用于表示字符串常量的双...

C语言结构体数组的定义1、C语言结构体数组的定义:数组是有序的并且具有相同类型的数据的集合。 2、结构数组就是具有相同结构类型的变量集合。假如要用C语言,定义一个班级40个同学的姓名、性别、年...

C语言程序设计数组指针与字符程序我在vc6.0上调试过了,能通过。 希望对你有所参考。 #include<iostream> using namespace std; int* min(int*array,int*s) { for(int i=0;i<5;i++) { for(int j=5*i;j<5*...

C语言字符指针数组#include"stdio.h" #include #define A 7 void main() { int i; char **p; p=(char **)malloc(sizeof(char *)); for(i=0;i p[i]=(char*)malloc(sizeof(char)); for(i=0;i { g...

C语言通用函数字符指针数组寻找指定字符#includenbsp;“stdafx.h“#includenbsp;amp;lt;stdio.hamp;gt;#includenbsp;amp;lt;string.hamp;gt;intnbsp;str2str(constnbsp;charnbsp;*str,nbsp;constnbsp;charnbsp;*s...