首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 关于char* [已结贴,结贴人:z_deliang]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • z_deliang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-21 16:24:04 楼主
    int *a={1,2,3},定义的是指针而赋值的是整形数组,会报错:但是char *str="hello me"为什么可以呢?
    10  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • malone1
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 16:28:331楼 得分:0
    SF
    char *str代表的是字符串。int*代表什么啊?它代表一个指向整形的指针,给他只能付值一个整形变量。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xkyx_cn
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-21 16:35:582楼 得分:0
    字符串是需要特殊对待的类型
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • synix521
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 16:38:553楼 得分:0
    char*->字符串
    难道int*->整数串?
    总之C里没提供这种不知所然的初始化语法
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wlfjck
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 16:39:384楼 得分:5
    char* str代表是一个指针,这个指针指向的是字符串"hello me"在内存的存放地址.
    而"hello me"在编译的时候会存放到程序的.data段中, 程序在Load起来的时候,会把"hello me"拷贝到内存.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freeyou11
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 16:42:245楼 得分:5
    呵呵 真能琢磨
    {1,2,3}跟"hello me"不是一种类型
    char *str={'1','2'}也不行:)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xqls_xqls
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 16:42:596楼 得分:0
    int a[3]={1,2,3};
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kxiaopeng
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 19:51:567楼 得分:0
    char类型很特殊,需要好好研究一下哦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hmsuccess
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 21:10:368楼 得分:0
    引用 4 楼 wlfjck 的回复:
    char* str代表是一个指针,这个指针指向的是字符串"hello me"在内存的存放地址.
    而"hello me"在编译的时候会存放到程序的.data段中, 程序在Load起来的时候,会把"hello me"拷贝到内存.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • leechrockgames
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 21:12:429楼 得分:0
    int *a={1,2,3}:这种是没有分配存储区的指针..会产生问题的:
    但是char *str="hello me";char,string都是特殊的.不用分配存储区.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • e_sharp
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 21:30:1710楼 得分:0
    char *str={'1','2'}; //也不行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • elegant87
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 21:45:4811楼 得分:0
    char* str代表是一个指针,这个指针指向的是字符串"hello me"在内存的存放地址.
    str是字符串的首地址。

    int *a;表示定义一个int型的指针,指向一个整型的数值;

    char很特殊的,值得好好研究一下! 
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • vbcpascal
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-21 21:53:0512楼 得分:0
    字符串字面值"hello me"是个字符数组嘛
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • z_deliang
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-22 16:45:1813楼 得分:0
    有些明白了,int *a定义的是一个指向整型数的指针,char*str={'1','2','3'}同样也会出错,不能用字符数组初始化字符指针,对吧?谢谢大家
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved