c语言指向指针的指针针指向问题

在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
#include &stdio.h&
int main()
printf("%d\n",*p);
这个怎么错了, 给p指向的内存赋值啊?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
定义了一个野指针,内存不安全
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
指针必须指向一个对象, 而你代码中的p指针,没有指向任何对象, 所以一定会报错. 至少要这样int * p = &a;
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。关于指针指向地址的问题 求大牛 详细解答一下【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:585,632贴子:
关于指针指向地址的问题 求大牛 详细解答一下收藏
char *p7=&helloworld&; {
b=0x; char *p4=(char *)&b; printf(&p=0x%hhx\n&,*p4 ); printf(&p=0x%hhx\n&,*(p4+1) );char *p7=&helloworld&; printf(&%c\n&,*p7 );
retrun 0;}为什么*P4取出来的是0x78,而*p7取的却是 ‘h’而不是'd'呢
赋值字符,取第一个字符的地址!
你为什么*p4不取12呢?
多来几个大神帮忙解决下
为什么不取十二呢,因为intel处理器是小尾顺序
他在内存中排列是78h 56h 34h 12h
也就是低位在前(低地址),高位在后
c语言,博为峰IT培训免费试听,0元入学,现在更有多重优惠,仅限今天!博为峰,真正的为年轻人服务的企业,14年间培训15万余名it工程师,成绩斐然!
登录百度帐号C语言怎样求指针指向的存储空间块的大小?
按时间排序
不是太明白你得问题。一般用malloc分配地址的时候需要设置分配的大小,你这里就是4个char型的数据,而char型是1个字节的,所以就是4了。这个大小返回的是字节数。 补充一下,这个大小默认是以字节为单位,如果你的类型是浮点的,应该是这样:float *p;p= (float*)malloc(4*sizeof(float));这样分配的才是4个浮点数据内存。这个指针的内存块大小就是4*sizeof(float)
如果是char *p 可以用strlen(p)来量,其他的类型计算长度,就没什么太大意义了吧
当然是不同平台的C语言编译器导致不同。
64位win7,VS2010控制台程序中sizeof(long*) 是4而不是8。应该和编译器的定义有关。
p = (char)malloc(4);4*sizeof(*p);试试
malloc分配的内存大小,当然C运行库是有存储这个值的,但你并不能使用它,也不能用正常的方式得到它。它的存在只为了free的时候能够正常的释放。所以建议只有,代码是你写的,malloc了多少你自己必然是知道的,没有必要去查这个信息。
感谢您为社区的和谐贡献力量请选择举报类型
经过核实后将会做出处理感谢您为社区和谐做出贡献
确定要取消此次报名,退出该活动?
请输入私信内容:徐豪坤!QQ帐号:
现手机号:。投稿:29粉丝:110分享--dynmicweibozoneqqbaidu将视频贴到博客或论坛视频地址复制嵌入代码复制微信扫一扫分享收藏0硬币--稍后看马克一下~用手机看转移阵地~用或其他应用扫描二维码手机下视频请使用扫码若未安装客户端,可直接扫此码下载应用看过该视频的还喜欢正在加载...miniOFF再谈C语言指针—指向另一指针的指针
原文:http://c.biancheng.net/cpp/html/495.html
一、回顾指针概念
早在本书第贰篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做“指向另一指针地址”的指针。让我们先回顾一下指针的概念吧!
当我们程序如下声明变量:
short int *
程序会在内存某地址空间上为各变量开辟空间,如下图所示:
图中所示中可看出:
i 变量在内存地址5的位置,占2个字节。
a变量在内存地址7的位置,占1个字节。
pi变量在内存地址9的位置,占2个字节。(注:pi 是指针,我这里指针的宽度只有2个字节,32位系统是4个字节)
接下来如下赋值:
经过上在两句的赋值,变量的内存映象如下:
看到没有:短整型指针变量pi的值为5,它就是i变量的内存起始地址。所以,这时当我们对*pi进行读写操作时,其实就是对i变量的
读写操作。如:
*pi=5; /* 就是等价于i = 5; */
你可以回看本书的第贰篇,那里有更加详细的解说。
二、指针的地址与指向另一指针地址的指针在上一节中,我们看到,指针变量本身与其它变量一样也是在某个内存地址中的,如pi的内存起始地址是9。同样的,我们也可能让某个指针指向这个地址。看下面代码:
short int ** /* 这是一个指向指针的指针,注意有两个“*”号 */
ppi = &第一句:short int ** —— 声明了一个指针变量ppi,这个ppi是用来存储(或称指向)一个short int * 类型指针变量的地址。第二句:&pi那就是取pi的地址,ppi = &pi就是把pi的地址赋给了ppi。即将地址值9赋值给ppi。如下图:
从图中看出,指针变量ppi的内容就是指针变量pi的起始地址。于是……
ppi的值是多少呢?—— 9。
*ppi的值是多少呢?—— 5,即pi的值。 //取出内存地址9存储的值
**ppi的值是多少呢?——50,即i的值,也是*pi的值。//取出内存地址5存储的值
呵呵!不用我说太多了,我相信你应明白这种指针了吧!
linux下c语言指针部分的一个总结
98 C语言二级指针(指向指针的指针)
C语言字符串指针(指向字符串的指针)
【C语言】指向指针的指针 char * *使用技巧
C语言中二维数组、二维指针、指向指针的数组、指向数组的指针
理解一般指针和指向指针的指针
没有更多推荐了,}

我要回帖

更多关于 c语言指针指向字符串 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信