c语言字符数组指针初始化(C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+))

:暂无数据 2026-10-01 17:20:01 :0

c语言字符数组指针初始化(C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+))

其实c语言字符数组指针初始化的问题并不复杂,但是又很多的朋友都不太了解C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+),因此呢,今天小编就来为大家分享c语言字符数组指针初始化的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+)

1 可以不用const,例如:
char aa = "abc";
aa = ’d’;
printf("%s\n", aa); //这里打印的结果是dbc,aa的大小是4,abc+一个\0
2 const char *aa = "abc";
aa = ’d’; //这个时候是错误的,因为aa是一个指针,指向一个字面常量“abc”,这个字面常量是保存在程序的全局静态数据区,不可更改,默认就是const的,所以char *aa = "abc";是错误的。
3 const char aa = "abc";
aa = ’d’; //这里也会报错,因为是const的aa指向的值不可更改。
const char *aa = "abc";
aa = "bcd"; //正确,const 类型 * ptr = value,这样的指针,指向的值不可变,但是指针本身可以重新指向其他地方。
4 怎么才能更改const char aa = "abc";中“abc”的值呢?这个时候aa指向的内存在程序的全局内存上(aa是在全局变量)或者在栈内存上(aa是局部变量),非全局静态数据区,所以我们可以强制转换:
const char aa = "abc";//但是const char *aa = "abc";这种情况不行,语法没有问题,运行报错,操作系统应该会对静态数据区做保护。
printf("%s %d\n", aa, sizeof(aa));
int bb = (int)aa;
char *ptr = (char*)bb;
ptr = ’d’;
printf("%s\n", aa);

C++字符指针数组的初始化及赋值问题

只有在定义的同时这样(a="what
for")赋值才行,其他不行,这是c语言规定的
要先定义然后再在其他地方赋值的话,就只能一个一个元素单独赋值,不过要是想达到同样的效果(类似a="what
for"),对于字符串数组,可以用库函数strcpy(...)函数赋值,其他的话,你可以自己写函数给他们赋初值!!

c语言 字符指针的初始化

char *a="china"这里在定义变量的时候就对指针变量进行了初始化,china*a;a="china";这里的a="china"实际上就是将字符串"china"所占的存储空间的首地址赋给了字符指针变量a。

C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+)的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+)、C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+)的信息别忘了在本站进行查找哦。

c语言字符数组指针初始化(C语言用指针形式初始化字符串数组时为什么要用const,用了会会怎样,可以不用吗(+_+))

本文编辑:admin

更多文章:


mariadb忘记密码(mysql用户密码忘记了怎么办)

mariadb忘记密码(mysql用户密码忘记了怎么办)

大家好,mariadb忘记密码相信很多的网友都不是很明白,包括mysql用户密码忘记了怎么办也是一样,不过没有关系,接下来就来为大家分享关于mariadb忘记密码和mysql用户密码忘记了怎么办的一些知识点,大家可以关注收藏,免得下次来找不

2026年10月15日 07:50

mysql端口号(如何查看自己数据库的端口号)

mysql端口号(如何查看自己数据库的端口号)

“mysql端口号”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看mysql端口号(如何查看自己数据库的端口号)!

2026年10月15日 06:30

printf打印16进制(C语言 十六进制怎么输出)

printf打印16进制(C语言 十六进制怎么输出)

大家好,今天小编来为大家解答以下的问题,关于printf打印16进制,C语言 十六进制怎么输出这个很多人还不知道,现在让我们一起来看看吧!

2026年10月15日 06:00

avantage怎么设置为中文(Avantage安装丢失GIT)

avantage怎么设置为中文(Avantage安装丢失GIT)

大家好,如果您还对avantage怎么设置为中文不太了解,没有关系,今天就由本站为大家分享avantage怎么设置为中文的知识,包括Avantage安装丢失GIT的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月15日 03:00

ospf协议的作用是什么(OSPF路由协议的作用是什么)

ospf协议的作用是什么(OSPF路由协议的作用是什么)

“ospf协议的作用是什么”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看ospf协议的作用是什么(OSPF路由协议的作用是什么)!

2026年10月15日 02:40

方案对比特效js(在一个网页中如何实现两个JS特效)

方案对比特效js(在一个网页中如何实现两个JS特效)

各位老铁们好,相信很多人对方案对比特效js都不是特别的了解,因此呢,今天就来为大家分享下关于方案对比特效js以及在一个网页中如何实现两个JS特效的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月15日 02:10

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)

今天给各位分享登陆视频监控网页时提示activex控件未注册,怎么解决的知识,其中也会对登陆视频监控网页时提示activex控件未注册,怎么解决进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:30

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

学生信息管理系统c语言(用C语言编程学生信息管理系统!)

今天给各位分享用C语言编程学生信息管理系统!的知识,其中也会对用C语言编程学生信息管理系统!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 20:20

excel连接sql数据库教程(excel怎么连接sql数据库)

excel连接sql数据库教程(excel怎么连接sql数据库)

本篇文章给大家谈谈excel连接sql数据库教程,以及excel怎么连接sql数据库对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月14日 19:40

null s brawl(null和空字符有区别吗)

null s brawl(null和空字符有区别吗)

今天给各位分享null和空字符有区别吗的知识,其中也会对null和空字符有区别吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月14日 19:00

最近更新

可信验证系统(什么是可信云认证)
2026-10-15 10:00:23 浏览:0
广告推广app(常见的app推广方式)
2026-10-15 09:20:01 浏览:0
热刺vs马赛比赛(热刺赛程比分)
2026-10-15 09:10:01 浏览:0
热门文章

标签列表