| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 544 人关注过本帖
标题:为什么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
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册: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
快速回复:为什么c语言可以给字符指针赋值,c++反而不可以?
数据加载中...
 
   



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

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