一个c语言问题撒,大佬们帮帮忙啊

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-11
s是数组指针,*s才是数组本身,所以s[i]就是*s[i]的首地址,是一个地址。
p是字符指针,p=s[1]就是指向*s[1]的首地址,意思就是,p指向"two"的第一个字符't'的地址。由于p是字符指针,并不是数组指针,所以p+1是指p的地址加上一个字符的地址,并不是数组的地址,即p+1指向"two"的第二个字符'w'的地址。所以*(p+1)=='w'。
还有本题的s[0]是一个地址,指向数组*s[]的第一个字符串的地址,s%可以直接打印地址上的字符串。如果本题存储的是整型数据,那么用%d打印s[0]就会输出一个地址。

你来提问我很欣慰。
看问题:p=a[1];*(p+1)所对的字符是什么
其实对c语言的数组而言,例如any_type arrayc[m];
访问arrayc[1]等价于*(arrayc+1)
也就是说arrayc+1==&arrayc[1]
//你可以试试int aa[9],i;for(i=0;i<9;i++)printf("%d,",aa+i==&aa[i]);
这个是确认的规则,一些编译器的头文件中有具体的方式去实现, 实现方法不一定相同, 这个我晚一点找给你
那么
*(p+1)==p[1]==a[1][1]

p指向的是s这个数组 不是指向的字符串 你这样想 p + 1就是s + 1 就是&s[2]
所以p = &s[1] 再p + 1 就是指向的是字符串three *(p + 1)就是t

p=s[1]的意思是,指针p指向字符串“two”的首地址,p+1是指向该字符串第二个字符的地址
*(p+1)就是字符w

  • C语言题目不会,帮帮忙!
    答:printf("请输入方程的三个系数\n"); //如果不是VC环境把中文给英文就可以了 scanf("%f",&a);scanf("%f",&b);scanf("%f",&c);m=4*a*c;n=b*b;if(n<m) printf("方程没有实根\n");else x=-b; printf("%d",x);r1=(x+sqrt(n-m))/2/a; //sqrt函数求一个数的平方根 ...
  • c语言题,请大佬帮忙一下?
    答:include <stdio.h> int main(void) { int num[10], i, j, t;for (i = 0; i < 10; ++i) { scanf("%d", &num[i]);} // 找偶数,换位置 i = 0;j = 9;while (num[i] % 2 != 0 && i < 10) ++i;while (num[j] % 2 != 0 && j >= 0) --j;while (i <...
  • 一道C语言基础知识的题大家帮帮忙
    答:最后输出结果a=0,b=0,c=5;要注意逗号运算符的优先级。问题补充:c=(a-=a-5),(a=b,b+3); 中【(a-=a-5),(a=b,b+3)】是不是也是一个逗号表达式啊?不是,你理解错误,逗号运算符优先级为最后,(c=(a-=a-5)),((a=b,b+3));这样才算是一个逗号表达式。
  • C语言问题,请各位大师帮忙.
    答://第一个循环: s=4+f(0) 因f(0),执行else {int a=7;t+=a++;} // t=0+7=7;return t+=a++; //t=7+5(static int a=5)=12;静态变量a=6;传回t=12;s=4+12=16;//第二个循环:s=16+f(1) ,因f(1),执行{int a=6;t+=a++;}// t=0+6=6;return t+=a++; ...
  • C语言程序编程题,求大神帮帮忙
    答:include<stdio.h> int main(){ struct stu { int id;char name[11];int a,b,c;} t,st[5];int i,j;FILE *fp1,*fp2;if((fp1=fopen("d:\\stud.dat","r"))==NULL){ printf("f1 open error!\n");return 1;} if((fp2=fopen("d:\\studsort.dat","w"))==NULL){ printf...
  • 求哪位高手帮帮忙 c语言题目
    答:一共有9行,分两个阶段输出:1.第一行--第五行;2.第六行--第九行。首先分析第一个阶段:行数i 空格个数j 数字个数k 1 4 1 2 3 3 3 2 5 4 1 7 5 0 9 有两个线性关系:空格个数与行数i:j=5-i;数字个数与行数i:k=2i-1;第二阶段同理。还要注意的是程序报错问题:...
  • 一个c语言快递邮费问题,搞不懂价格与重量的关系,主要是涉及到取整,求各...
    答:include<stdio.h> int main(void){ int x,n;float y,p;scanf("%d,%f",&x,&y);n=(int)y;if(x>=0&&x<=4)if(y<=1&&y>0)y=1.00;if(x==0||x==1)p=10;else p=15;if(y>1)if(y-n>0)y=(int)(y+1);if(x==0)p=10+(y-1)*3;if(x==1)p=10+(y-1)*4;i...
  • 几道C语言的题,帮忙答一下,希望是绝对正确的答案,不明确的别扰乱啊
    答:一、1.4种,=+?:2.1个 3.f()、g()、p()或q()、+、= 二、用异常捕获应该就可以了,1、捕获异常时,break(在for或while中搞)2、捕获异常时,进行相关的操作 三、bc 四、bd 问题太经典啦,要绝对正确的答案很难!
  • 有些C语言的问题~有人能帮忙回答一下吗?悬赏100分
    答:2.整型,字符型,浮点型 3.-4 4.联合体的所有成员变量共享内存空间,结构体的所有成员变量各自享有内存空间。5.a=1,b=3,c=2 6.14 m 7.前者是字符串,包含'a'和'\0'两个字符,后者是字符'a'。8.7,1 9.0 10. false 11.9.876543e4 12.换行 13.9,11,9,10 二.编程题 1、...
  • C语言的代码问题,求大神帮忙看看问题在哪?
    答:include <stdio.h>int check(int n){int i,k=0;for(i=2;i<=n/2;i++)if(n%i==0) break;if(i>n/2&&n>1) k=1;return k;}int main(){int i,n;scanf("%d",&n);if(n<=10||n%2) //哥德巴赫猜想。其实对任意不小于4的偶数都成立,而不是10printf("Data error!");else...