c語言實現cd
發布時間: 2025-04-01 21:19:00
1. 數組指針c語言的問題,這道題的cd選項等效成什麼
知識點:
(1) int (*cp)[5], 這里有小括弧,所以 cp 是1個指針,(又叫行指針),注意,是一個指針,後面[5]表示這個指針用於指向有5列的2維數組。 cp=c; 說明,c 是2維數組,它每行有5列元素,現在讓cp指向了第一行。 cp=&c[0][0]; 若 cp+j 則指向 第 j 行。
(2) C語言中,方括弧實際上也是運算符,記住衡等式 a[i] == *(a+i),用它,可以變換[] 與 *。 這里 *號 是求值。
好了。假定, int c[4][5]={0,1,2,3,4,10,11,12,13,14,
20,21,22,23,24,30,31,32,33,34},(*cp)[5]; cp=c;
變換 9.12 的 c,d:
*(cp+1)+3 = (c[1])+3= &c[1][3]; 是地址。 *(*(cp+1)+3) 是 c[1][3] 的值。
*(*cp+2)= *(*(cp+0)+2)=*(c[0]+2)=c[0][2]; 是元素c[0][2]的值。
我們來輸出:
printf ("%d -- %d\n",*(*(cp+1)+3), c[1][3]);
printf ("%d -- %d\n",*(*cp+2),c[0][2]);
輸出:
13 -- 13
2 -- 2
2. 用C語言編程序輸出a,b,ab,c,d,ac,bc,abc,d,ad,bd,cd,abd,acd,
atmystate用的是遞歸方式實現,我用非遞歸實現如下:
#include<stdio.h>
#include<string.h>
#defineSTR "abcd" //可以換成abcdef或其他字元,只要不超過8
intmain()
{
inti=0;
intj=0;
inttemp=0;
char*p=STR;
intlen=strlen(STR); //不包括末尾的'