C语言char*和char[]用法_imxlw00的博客 - CSDN博客
文章推薦指數: 80 %
C语言char*和char[]用法. imxlw00 于 2019-06-15 16:30:38 发布 45195 收藏 194. 分类专栏: C语言. 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载 ...
C语言char*和char[]用法
imxlw00
于 2019-06-1516:30:38 发布
45197
收藏
194
分类专栏:
C语言
版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/imxlw00/article/details/92105004
版权
C语言
专栏收录该内容
42篇文章
7订阅
订阅专栏
char[]定义的是一个字符数组,注意强调是数组。
char*定义的是一个字符串指针,注意强调是指针。
char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。
这是将提示内存不能为"written"。
当用chars[]=“hello”;后,完全可以使用s[0]=‘a’;进行赋值,这是常规的数组操作。
若定义:
chars[]="hello";
char*p=s;
也可以使用p[0]=‘a’;因为这是p==s,都是指向数组的指针。
char*s=(char*)malloc(n);//其中n为要开辟空间的大小
相当于
chars[n];
#include
分享给大家供大家参考之用。
具体分析如下:
一般来说,很多人会觉得这两个定义效果一样,其实差别很大。
以下是个人的一些看法,有不正确的地方望指正。
本质上来说,char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char*s=“hello”;后,不能使用s[0]=’a’;语句进行赋值。
这是将提示内存不能为”written”。
当用chars[]=”hello”;后,完全可以使用s[0]=’a’;进行赋值,这是常规的数组操作。
若定义:
chars[]=hello;
评论 8
您还未登录,请先
登录
后发表或查看评论
深入char*,char**,chara[],char*a[]内核
热门推荐
行人事,知天命
02-23
16万+
C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。
。
。
下面就开始剖析一下这两位的恩怨情仇。
。
。
1 数组的本质
数组是多个元素的集合,在内存中分布在地址相连的单元中,所以可以通过其下标访问不同单元的元素。
。
2 指针。
指针
【C/C++】对char*和char[]区别的一些理解
不很正派的专栏
10-20
5万+
相同点首先这两种类型都可以对应一个字符串,比如:
char*a=”string1”;
charb[]=”string2”;
printf(“a=%s,b=%s”,a,b);
其中a是一个指向char变量的指针,b则是一个char数组(字符数组),其次,很多时候二者可以混用,像函数传参数的时候,实参可以是char*,形参可以是char[],比如:
voidfun1(cha
C语言字符串char*char[]char**与char*[]
crazyeden的博客
07-19
1万+
首先针对一位字符数组即字符串的情况进行说明。
char*s="hello";等价于charstr[]="hello";
原因是常量字符串在编译器眼里就是它第一个字符的地址。
如图所示,复现的时候需要注意s的值会变,s是一个指针变量,整形,它的值就是字符串第一个字符所在的地址,*s就是china中的c,printf函数的原理就是,把s的值即第一个字符的地址传进去,然后...
char*、char**和char***的使用
modi000的博客
07-07
2747
1、char*的使用
charstr[]="hello";
char*ch=str;
printf("%s",ch);
2、char**的使用
char*str[]={"hello","world"};
char**ch=str;
printf("%s",ch[0]);
3、char***的使用
char*str[][]={{"hello","world"},{"nihao","shijie"}};
char***ch=str;
print...
char*和char[]的区别
weixin_34241036的博客
04-05
2823
以下内容均来自互联网,系笔者汇总并总结。
1.问题介绍
问题引入:
在实习过程中发现了一个以前一直默认的错误,同样char*c="abc"和charc[]="abc",前者改变其内
容程序是会崩溃的,而后者完全正确。
程序演示:
测试环境Devc++
代码
#include
1、赋值后不可修改数据
2、移动指针输出字符时,是从当前指针位置开始输出,到‘\0’停止
char*s1="abc";//...
c语言中char怎样用,C语言中char*和char[]用法区别分析
weixin_30296363的博客
05-25
925
C语言中char*和char[]用法区别分析本文实例分析了C语言中char*和char[]的区别。
分享给大家供大家参考之用。
具体分析如下:一般来说,很多人会觉得这两个定义效果一样,其实差别很大。
以下是个人的一些看法,有不正确的地方望指正。
本质上来说,char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char*s="hello";后,...
c语言char*作用,C语言指针知识点(一):字符指针(char*)及其格式输出(%c%d%s等)...
weixin_35732670的博客
05-16
1454
类型是分配内存块大小的别名,即类型(int,double,char)的作用就是分配相对应大小的内存,并给程序员一个名字(int,double,char)方便操作;指针也是一种数据类型,定义时可以对其赋值(可赋任意地址值,但习惯赋值为NULL,方便操作管理),而操作符*是对指针所指示的地址上的数据进行操作,即不用*操作,改变的将会是地址变量的值,而不是地址变量所指的值。
指针变量(*p):%p是输出...
c语言char有什么作用,C语言中char*和char[]用法区别分析
weixin_30124601的博客
05-16
224
本文实例分析了C语言中char*和char[]的区别。
分享给大家供大家参考之用。
具体分析如下:一般来说,很多人会觉得这两个定义效果一样,其实差别很大。
以下是个人的一些看法,有不正确的地方望指正。
本质上来说,char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:当char*s="hello";后,不能使用s[0]='a';语句进行赋值。
这是...
char和char*的区别!
qq_33677565的博客
07-19
884
/*整理chararr[]和char*arr的区别:
char*arr的arr,而指针是指向一块内存区域,它并不知道它指向的内存单元有多大,所以指向的内存区域的大小可以随时改变,当指针指向常量字符串时,它的内容是不可以被修改的,否则在运行时会报错。
chararr[]的arr是数组对应着一块内存区域,其地址和容量在生命期里不会改变,只有数组的内容可以改变。
*/
#include
int
C语言之对char*与char[]的理解
Chenxi13
01-22
3万+
在我们学习的过程中,在定义字符串时常常会用char*或者char[]去定义一个字符串,可是这两个的区别却天差地别。
今天在这里我阐述一下自己对这两种定义的理解与看法。
首先分别用这两种方法定义字符串,如下。
char*str1="abcd1234";
charstr2[]="abcd1234";接下来,我们分别对这两种方法定义的字符串进行测试。
char*与char[]区别总结
最新发布
bitcarmanlee的博客
04-14
827
1.先上结论
c++代码里头经常见到char*与char[]的写法,这两种写法都可以表示一个字符串。
比如:
voidcharcode(){
char*a="c1";
charb[]="c2";
printf("a=%s,b=%s",a,b);
}
上面这段代码,最后输出的结果为
a=c1,b=c2
所以这两种方式都可以表示字符串,那么区别到底是什么?我们先说结论,后面再来分析:
char*这种方式表示常量指针,char[]这种表示指针常量!
2
char*字符串和char[]字符串的理解
ditai7690的博客
07-05
3010
一、char*字符串
1.如何声明一个char*字符串
你可以这样:
char*str="test"; //str是一个指针,存放在栈区,"test"是一个常量,存放在常量区,VS2017要求这句声明前面必须加上const,因为它所指向的常量字符串是不可更改的
deletestr;
还可以这样:
char*str=newchar[20]; ...
C语言中char[]的操作函数
LawsonAbs'sSpiritualHome
02-07
2931
C语言中char[]的操作函数
1.赋值操作
在C语言中,char型数组是不可以直接赋值的。
例如在如下的代码中,会得到错误:
charc1[20]="women";
charc2[20]="";
c2=c1;
错误
[Error]invalidarrayassignment
正确的使用方式是:
strcpy(c2,c1);
2.比较操作
如何比较两个char[]型数组...
C语言char*和char[]用法
dodod2012的专栏
09-03
312
char[]定义的是一个字符数组,注意强调是数组。
char*定义的是一个字符串指针,注意强调是指针。
char*s定义了一个char型的指针,它只知道所指向的内存单元,并不知道这个内存单元有多大,所以:
当char*s=“hello”;后,不能使用s[0]=‘a’;语句进行赋值。
这是将提示内存不能为"written"。
当用chars[]=“hello”;后,完全可以使用s[0]=‘a’;进行赋值,这是常规的数组操作。
若定义:
chars[]="hello";
char
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
imxlw00
CSDN认证博客专家
CSDN认证企业博客
码龄17年
暂无认证
402
原创
2万+
周排名
3121
总排名
57万+
访问
等级
8797
积分
534
粉丝
563
获赞
105
评论
2078
收藏
私信
关注
热门文章
C语言char*和char[]用法
45136
C语言中1<<n是什么意思
44147
一赫兹等于多少秒?
28472
共阳极数码管
20920
单片机74HC573
17087
分类专栏
前端
Vue
1篇
JavaScript
3篇
MFC
3篇
深度学习
12篇
计算机视觉
4篇
图像处理实例
4篇
数字图像处理
26篇
OpenCv
32篇
c#数字图像处理
4篇
机器学习
3篇
keras
6篇
C#网络编程
7篇
Esp8266
14篇
STM32F103
22篇
Arduino
Python
48篇
JavaEE
spring
4篇
shiro
7篇
springboot
7篇
Net
Java
26篇
设计模式
20篇
小说
2篇
微机原理
18篇
其它
7篇
电路原理
14篇
单片机
42篇
STM8
14篇
模拟电子技术基础
5篇
C语言
42篇
数据结构
8篇
ActiveMQ
5篇
最新评论
C语言读取BMP文件
programmer_ada:
邀请你参加C技能树有奖评测征文:https://bbs.csdn.net/topics/606838471?utm_source=AI_activity_c
C语言读取BMP文件
m0_70650551:
作者在吗?这个程序为啥是断言错误?
微机原理18-堆栈操作指令
weixin_46630499:
想问一下博主,sp指向的单元是栈顶的最后一个字节还是最后一个字节的上一个字节啊
C语言char*和char[]用法
夜猫子~~~:
第一种可以取地址内容在赋值,*s=a,如果是第二个元素,先让地址偏移1,再取*(s+1)=b
C语言二维数组
無涉交.933:
#include
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值
延伸文章資訊
- 1(原創) char s[]字串和char *s字串有什麼差別? (C/C++) (C)
C語言有兩種字串宣告方式char s[]和char *s,兩者有什麼差異呢? ... 狀況下用法相同,但char *s速度略快,因為不需copy的動作,且*s++為C語言常用的 ...
- 2字元(char) | C++與演算法
以下會較詳細介紹C++是如何以char 儲存字元。 ASCII. 維基百科- ASCII. 一個char變數就是儲存ASCII 裡的一個整數編號( 0 ~ 127 ). 其中分成(1)可顯示(2...
- 3字元陣列與字串 - OpenHome.cc
字串就是一串文字,在C 談到字串的話,一個意義是指字元組成的陣列, ... #include <stdio.h> #include <string.h> int main(void) { cha...
- 4C++ char 和string 簡單用法 - 程式人生
C++ char 和string 簡單用法 ... char c1[40]; sprintf(c1,"%d",num3);//按正常位數轉換 cout << "%d, int->char : "...
- 5C語言中char*和char[]用法區別分析 - 程式人生
C語言中char*和char[]用法區別分析. 阿新• • 發佈:2019-01-10. 本文例項分析了C語言中char* 和char []的區別。分享給大家供大家參考之用。具體分析如下:.