| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3110 人关注过本帖
标题:指针数组在定义的时候为什么不能付初值
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 19楼 童生
算了,应该是编译器不支持左值"强制转型",编译器禁了我那个"黑科技",去掉int很明显可以得出结果~
看来只能int s='abcd';这样了~

[此贴子已经被作者于2018-4-1 14:38编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-01 14:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
我就不信不能这样玩~

程序代码:
#include<stdio.h>

int main( void )
{
    char s[6]={"abcds"};
    
    int* const p=( int* )s;
    
    *p=*(( const int* const )"wxyz123");
    
    puts(s);
    
    return 0;
}


[此贴子已经被作者于2018-4-1 14:54编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-01 14:45
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
还有发现了个好玩的

以下是引用童生在2018-4-1 13:52:38的发言:


s[0]=*(( const int* const )"wxyzk");  就是  s[0]= "wxyzk"[0];或者 s[0]=0[ "wxyzk"];


其实a[i]=*(a+i)=*(i+a);

这样a[i]可以写成i[a];

a[i][j]=i[a][j]=j[i[a]];

还有这种操作~

[此贴子已经被作者于2018-4-1 16:33编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-04-01 15:12
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
收藏
得分:0 
从根上去理解[]就不觉得奇怪了,它实际就是个取值相加位移
2018-04-01 16:38
快速回复:指针数组在定义的时候为什么不能付初值
数据加载中...
 
   



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

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