问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

直接赋初值的指针变量是指针常量吗?

发布网友 发布时间:2024-10-20 23:31

我来回答

5个回答

热心网友 时间:2024-11-13 06:18

1,char *a="abcd";这个是指针常量吗?
指针char *a不是常量,它是变量,但是它指向的"abcd"是字符串常量。
所以这个时候使用strcpy(a, "end")是不可以的,因为strcpy操作是操作a指向内存地址的字符串。
2,char*a="haha";
char*b="lala";
a=b;
printf("%s\n",a);
这一段是可以的,因为a=b操作是对指针a,而不是指针a所指向的内存。
a=b改变的不是“abcd”的值,而是改变a的值等于b的值,让他们所指向的内存都为"haha"。

所以,一定要这个概念。
strcpy操作的是指针所指的内存,而=操作的是指针本身。
关系是不同的。

热心网友 时间:2024-11-13 06:19

几乎每个初学C语言的人都有这样的困惑,首先"abcd"是字符串常量,是无法更改的。首先,a是一个指向char类型变量的指针,假设“haha”在内存的起始地址为1,那么a的值就为1,“lala”的内存起始地址为100,b的值就为100, 通过a=b,只是将a的值修改为100,也就是说a指向了“lala”,但是内存中起始地址为1的内容任然是“haha”,你修改的只是a的指向。

推荐书籍《C与指针》《C专家编程》
等你学了操作系统,知道堆栈等概念后,就会理解了。追问你说a的值是起始地址,等于1,但我运行输出确是abcd,输出*a是a,这又是为什么呀?

热心网友 时间:2024-11-13 06:19

一、你以字符串的形式输出,实则就是从数组的首地址一个个检索值输出,因为C语言中没有字符串变量,就用数组来等效构造,所以,就输出它的值了,指针就是变量,只不过是用来存放地址的变量罢了,当然不是指针常量了。
二、C语言中的内存分配是如下的,1.栈区,主要是局部变量,由系统开辟,系统释放2.堆区,即动态内存分配,主要是全局变量和静态变量3.常量内存区4。代码存储区
你这样定义相当于定义两个数组指针,当然是可以赋值的。
此外,C语言中对变量的访问方法有两种,一种是通过变量名直接访问,另一种是通过地址间接访问。当无论哪种,都要先找到内存物理地址。追问那char *a="abcd";
为什么a="end"可以通过编译,而strcpy(a, "end")运行出来却又错呢?

追答strcpy(str1,str2)函数是把字符串str2复制给字符串str1,所以,应该不是用指针来承接,而是用数组

热心网友 时间:2024-11-13 06:20

这里a,b放的是地址没错,a=b就是相当于将a里面原来的地址值改成了和b一样,这样的a里面的地址就会指向“lala”,原来的“haha”也还是会存在于内存中。追问但输出a时应该是lala的地址呀,但输出a时却是整个字符串lala.(printf("%s\n",a))

追答输出时肯定要找到地址对应的值啊 ,不会是输出一个地址的!

热心网友 时间:2024-11-13 06:21

你以%s输出就是输出整个字符串,当你以%d输出时就是字符串的首地址了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...了我亲弟弟的女朋友了 她也喜欢我 我该怎么办 他们已经分手了... ...个朋友的老婆你说我该追她吗 他们现在已经分手了 月经第三天有大量血块排出是什么原因 如何关闭360推荐的广告学习关闭360推荐广告 手机浏览器的不雅广告怎么清除 怎样设置浏览器推送内容 学政治对考公务员有优势吗 公务员必须选政治吗 如何提高苹果手机的下载速度 苹果手表有必要买蜂窝版吗苹果手表有必要买蜂窝版吗 我是今年高考广东理科考生分数是639,可不可以填报华中科技大学或暨南... 639报哪个学校 熟食能放冰箱冷冻多久 熟食冷冻多久 熟食可以冷冻多久 您好,我是广西2013年的文科生,考了455分,请问这样的分数能进江西财经大... 2010年广西文科考生455分能上什么大学 我是湖南考生,想考广西的二本大学,大概要考多少分?2016年为例 372分文科在广西省2016高考排多少名 东方付通信息技术有限公司产品与服务 大话西游手游小霸王怎么下载 大话手游老友徽章能学隐身吗 大话西游手游小霸王如何下载 用1A的充电器还是2A的充电器给one充电好 上海裕同印刷有限公司主要产品及设备 风田清洗后跳闸? 风田集成灶怎么清洗? 如何消除斜波 pn码. PN码序列捕获 K2S溶液离子守恒,物料守恒及质子守恒怎么写 挫折理论挫折心理的种种表现 挫折理论的心理表现 ...长期食用鸡心、鸡胗、猪牛肚、猪牛心或猪牛舌等动物内 刚买来的ipod shuffle要先耗完电再充电吗,第一次冲要冲多久?(USB冲的... ipod shuffle 5 充电时状态是ON还是OFF,要把iTunes需要一直开着吗? 拼多多分享链接怎么拍单(如何在拼多多购买商品并生成订单) 拼多多如何找1688货源?拼多多卖1688的货怎么接单收款? 拼多多商家如何创建拍单链接(拼多多商家如何生成拍单链接) 儿童乘坐国内航班可不可以不买儿童票乘坐?如果买了能登机吗? 黑龙江的特岗教师面试是什么形式的啊?都会考些什么类型的问题_百度知 ... 清洗油污的方法介绍 怎么清洗油污 ...我今天上课时 与别人传纸条被老师发现了 老师叫我把纸条拿上去给他... ...我今年12岁。五年级的时候有一个男孩给我传纸条“我喜欢你”后_百度... 最近老是梦见和别人告别,出远门 长沙市南雅中学领导班子有哪些人? 刘友铁个人简介 部落冲突的时间怎么加快 天涯客周子舒什么时候摘面具 周子舒和温客行结局怎么样 ...a2=4(1)求数列{an}的通项公式(2)设数列{bn}为等差数列,且b1=a1... 山河令周子舒什么时候露真容