| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 585 人关注过本帖
标题:[求助]指针有问题,这是为什么呢??
只看楼主 加入收藏
lin_er
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-15
收藏
 问题点数:0 回复次数:4 
[求助]指针有问题,这是为什么呢??


1.为什么不能把一个指针变量(P)的值(地址)赋给一个整形变量(i)呢?若是一个地址的话,不也是一个整数值吗?

2.设 char *s="\ta\017bc";则指针变量s指向的字符串所占的字节数为:(6)
很显然,这里把“\017”看作是一个八进制数了。我不明白的是,系统不是认为字符串遇“\0”结束吗?这里是如何区分的呢??

3.
#include<stdio.h>
void main()
{
int num_list[]={6,7,8,9},k,j,b,u=0,m=4,w;
w=m-1;
while(u<=w)
{
j=num_list[u];
k=2; b=1;
while(k<=j/2&&b)
b=j%++k;
if(b) printf("%d\n",num_list[u++]); file://结果为: 7 请问:它的运算过程是怎样的啊,我怎么的不出来呢??
else
{
num_list[u]=num_list[w];
num_list[w--]=j;
}
}
}

4.
#include<stdio.h>
void main()
{
printf("Fa(5):%d\n",fa(5));
printf("Fa(1):%d\n",fa(1));
fa(-5);
}

fa(int value)
{
if(value<0) {printf("Fa(<0):Error!\n"); return(-1);} // 这里的值 -1 为什么不返回呢?
else if(value==1||value==0) return(1); // 这里会返回值 1
else return(value*fa(value-1));
}

5.
#include<stdio.h>
#include<string.h>
fun(char *s)
{
char a[7];
s=a;
strcpy(a,"look");
}
void main()
{
char *p;
fun(p);
puts(p); // 果出错 是因为指针p没有被指向某一单元吗?
}

6.
#include <stdio.h>
#include <string.h>
void main()
{
int n;
char t,*s1,*s2;
char *p;
p="1234567";
n=strlen(p);
for(s1=p,s2=p+n-1;s1<s2;s1++,s2--)
{t=*s1;*s1=*s2;*s2=t;}
puts(p); // 为什么无法运行啊?
}

搜索更多相关主题的帖子: void 整形 include 八进制 字符串 
2006-03-25 14:48
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 

1.你怎么知道那个地址的名称是什么
2.'\0'表示回车
3.while(k<=j/2&&b)
b=j%++k;
if(b) printf("%d\n",num_list[u++]); //*b==0;当然不会执行
4.#include<stdio.h>//it is ok now
int fa(int value)
{
if(value<0) {printf("Fa(<0):Error!\n"); return(-1);} // 这里的值 -1 为什么不返回呢?
else if(value==1||value==0) return(1); // 这里会返回值 1
else return(value*fa(value-1));}
void main()
{
printf("Fa(5):%d\n",fa(5));
printf("Fa(1):%d\n",fa(1));
fa(-5);
}
5.#include<stdio.h>
#include<string.h>

void main()
{
char a[7],*s;
s=a;
strcpy(s,"look");
puts(s);}
6.#include <stdio.h>
#include <string.h>
void main()
{
int n;
char t,*s1,*s2;
char *p;
char a[]="1234567";
p=a;
n=strlen(p);
for(s1=p,s2=p+n-1;s1<s2;s1++,s2--)
{t=*s1;*s1=*s2;*s2=t;}
puts(p); // ok,now
}


喜欢宁静的平凡生活
2006-03-25 15:13
ADALE
Rank: 2
等 级:新手上路
威 望:4
帖 子:483
专家分:0
注 册:2005-11-18
收藏
得分:0 

建议楼主下次不要一次问这么多


喜欢宁静的平凡生活
2006-03-25 15:15
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

1 : 可以(估计你表达错了)
2 : \017 是整体
3 : 自己仔细一步一步看
4 : f(-5)的值没任何变量接收,返回了-1,但已扔掉
5 : p只是一个字符指针,没有指向一段内存(可读写)
6 : p="1234567" p 只是指向串首(原因同5)


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-25 15:18
lin_er
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-3-15
收藏
得分:0 
  时间紧迫,所以一下子问了好多啊,呵呵
2006-03-29 13:39
快速回复:[求助]指针有问题,这是为什么呢??
数据加载中...
 
   



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

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