标题:为什么c语言可以给字符指针赋值,c++反而不可以?
只看楼主
一日之计在
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-3-21
 问题点数:0 回复次数:2 
为什么c语言可以给字符指针赋值,c++反而不可以?
char *i="hello!\n";
在c语言环境下就可以通过,c++反而通不过了。。。
vc6.0倒是能通过,而code::blocks的c语言环境建立的.c文件也能通过,就是c++环境的.cpp文件里就提示warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
为什么呀?
搜索更多相关主题的帖子: conversion warning hello c语言 
2015-03-21 17:53
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
得分:0 
C++的char型只承认单个字符,并且赋值也规定死了要用单引号。除非是数组,才能接受字符串。数组名在不带下标的情况下也正是字符串中第一个字符的指针。C是怎么样的语法就不太清楚了
2015-03-21 21:51
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
无论是C,还是C++,正确的写法都是 const char *i="hello!\n";
但因为C以前没有const关键字,存在着大量的类似 char *i="hello!\n" 代码,所以网开一面,允许char *i="hello!\n"编译通过。
warning 不是 error
2015-03-23 08:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-442906-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017942 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved