社区
C语言
帖子详情
老潭书里的二维数组
c4313848
2003-10-09 10:04:58
#include "iostream.h"
#include "stdio.h"
void main()
{
static char *name[] = {"follow me","basic","Great Wall","fortran","computer design"};
char **p;
p = name+2;
printf("%o\n",*p);
printf("%s\n",*p);
}
为什么输出时换个格式,结果就不一样。*P是什么意思。
...全文
55
26
打赏
收藏
老潭书里的二维数组
#include "iostream.h" #include "stdio.h" void main() { static char *name[] = {"follow me","basic","Great Wall","fortran","computer design"}; char **p; p = name+2; printf("%o\n",*p); printf("%s\n",*p); } 为什么输出时换个格式,结果就不一样。*P是什么意思。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
26 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
c4313848
2003-10-17
打赏
举报
回复
cxjddd(空浮无根)老兄你是不是经常改名字。
cxjddd
2003-10-16
打赏
举报
回复
以前怎么就没打过鸟呢??
c2413
2003-10-14
打赏
举报
回复
那个老兄帮忙贴上去。
c4313848
2003-10-14
打赏
举报
回复
谁这次考中级程序员,能不能把下午题目的答案贴上。
allenc4213
2003-10-13
打赏
举报
回复
因为前两天去考试(中程),也不知道怎么样,水准太底了,
c4313848
2003-10-10
打赏
举报
回复
&str是str的地址,str地址到底是什么东东
Jinhao
2003-10-10
打赏
举报
回复
嘿嘿,*P是name+2的地址,在输出字符串时都是用的指针,不管是C还是C++都是这样
char a[100]="china";
a也就是个指针,等同于char*
输出时
cout<<a;
输出地址也可以这样
cout<<(long)a;
leyt
2003-10-10
打赏
举报
回复
str的地址就是str在内存中的位置
sjtucs
2003-10-10
打赏
举报
回复
*name[]用的是指针数组,数组元素是地址。p=name+2即该指针数组中name[2]的地址给p,而*p为name2的值,又是个地址,用%o八进位输出该地址。printf+%s输出字符串,后面跟数组名,*p是地址,值就是“great wall” 的首地址,故输出该字符串
chinajiji
2003-10-10
打赏
举报
回复
char* str = "string";
str 首先是个“指针变量”,知道不??
我不知道.
变量取地址用什么? &str ,知道不??
我也不知道.
&str 就是“变量”str 的地址!!!!
我还是不知道.
str 的值是什么??就是 "string" 的地址。
我更不明白了.
"string" 的地址是什么??就是 "string" 在内存中的位置。
我更糊涂了.
cxjddd
2003-10-10
打赏
举报
回复
char* str = "string";
str 首先是个“指针变量”,知道不??
变量取地址用什么? &str ,知道不??
&str 就是“变量”str 的地址!!!!
str 的值是什么??就是 "string" 的地址。
"string" 的地址是什么??就是 "string" 在内存中的位置。
bg54
2003-10-10
打赏
举报
回复
*是取地址中的值,和数组有连系,
int a[10],*p;
p=a;
p是a[0]的地址。
*p是a[0]的值,
wing0
2003-10-10
打赏
举报
回复
加上"*"表示取值,“&”表示取地址,
你的理解基本上正确,举例说明
int i
int*i_pointer
i_pointer = &i//指针起始值
*i_pointer= 2//这条语句等同于i=2
firedevil
2003-10-10
打赏
举报
回复
%s是字符串格式符,
而%o好象是八进制输出格式符
c4313848
2003-10-10
打赏
举报
回复
我又问了一个问题,就在上面,请大家帮忙.
andyforever
2003-10-10
打赏
举报
回复
*是取地址,上面的操作符不同所以输出的内容当然不同了,就好像是对同一个地址的内容作不同的理解
c4313848
2003-10-10
打赏
举报
回复
我又从头看老潭的指针那章,
他第一节里讲:指针变量的值(即指针变量中存放的值)是指针(地址)。
他在书里举了个例子:
i_pointer = &i; (i的开始地址为2000)
他还说 i_pointer 中的的值为2000,是i的地址,我想知道怎样可以通过 i_pointer 来得到
i 的地址(也就是i_pointer中的内容应该是2000)。
“*”号表示“指向”*i_pointer 是i_pointer所指向的变量也就是 i 的值,
这个可不可以这样理解:*i_pointer 是指向存放在 i_pointer 中地址上的内容
cxjddd
2003-10-09
打赏
举报
回复
*p 能取得字符串的地址,当然就能得到字符串了。
char* str = "string"; // str 的值是 "string" 的地址
char** pstr = &str; // pstr 得到 str 的地址
printf ("%s", *pstr); // 这样也能打印 "string"
*pstr 得到的也不是 str 的地址:)
而是 "string" 的地址。
把“指针”和“地址”搞错了。
lemon520
2003-10-09
打赏
举报
回复
指针对初学者来说是一个难点!
这是很正常的事情,看书看多了就会慢慢明了了!
不要着急。
冰冻三尺,非一日之寒嘛!
c4313848
2003-10-09
打赏
举报
回复
我知道printf("%s\n",*p); 是输出字符串,遇到'\0'结束,
但是,*P不是name+2的地址,它怎么能输出字符串,难道
象printf("%s\n",*p)这种输出,可以输出name+2里的内容,
还是我的理解根本就是错的????
加载更多回复(6)
程序员考试补课笔记 C资源
今天是第一天补课,终于有又机会可以听到林老师的课了,我觉得他比老潭说得还要好呢,虽然我没有听过老潭的课,不过我相信绝大部份在校的人学C语言都是用老潭的《C程序设计》吧。这本书的好处是有很多的,最主要的...
入C语言门,最好的书籍及资料
C语言,c程序设计代码,课件 老潭(谭浩强)课本,除了这本书,我真的想不出第二本,比这更适合初学者的
C通过运行时堆栈支持递归函数的实现。递归函数就是直接或间接调用自身的函数。
许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。...
对C语言中递归算法的深入解析
许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的《C语言程序设计》一书中就是从阶乘的计算开始的函数递归。导致读过这本经书的同学们,看到阶乘计算第一个想法就是递归。...
学习心得(五)
2.
二维数组
存储时按照行排列。 只对部分元素赋初值时,未赋值的元素自动取0。3.scanf的例子 为了告诉大家scanf中若参数为数组,就不需要加&,老潭的书中有这样一个例子: main() { char st1[3],st2[3];
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章