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); // 为什么无法运行啊?
}