1 題目
功能:使用指針的指針輸出字符串
描述:
使用指針的指針輸出字符串。
首先要使用指針數(shù)組創(chuàng)建一個(gè)字符串?dāng)?shù)組,然后定義指向指針的指針,使其指向字符串?dāng)?shù)組,并使用其輸出數(shù)組的字符串
2 思路
char**p;
這里指向指針的指針,表示指針變量 p 是指向一個(gè)指針變量。*p 就表示 p 指向另外一個(gè)指針變量,即一個(gè)地址。
**p 表示 p 指向指針變量指向的對(duì)象的值。 例如:* (p+1) 表示 accounts[1] 的內(nèi)容,指向 accounts[1] 的首地址
3 代碼
#include <stdio.h>
#define N 5
/**
函數(shù):fun()
功能:使用指針的指針輸出字符串
描述:使用指針的指針輸出字符串。
首先要使用指針數(shù)組創(chuàng)建一個(gè)字符串?dāng)?shù)組,然后定義指向指針的指針,使其指向字符串?dāng)?shù)組,并使用其輸出數(shù)組的字符串
**/
intmain(intargc,charconst*argv[]) {
? char*accounts[]={
? ? "你好 C語(yǔ)言 1",
? ? "你好 C語(yǔ)言 2",
? ? "你好 C語(yǔ)言 3",
? ? "你好 C語(yǔ)言 4",
? ? "你好 C語(yǔ)言 5"
? };? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // 指針數(shù)組創(chuàng)建字符串?dāng)?shù)組
? char**p;
? p=accounts;? ? ? ? ? ? ? ? ? ? ? ? // 注意這里一定是二重指針來(lái)指向accounts
? for(inti=0;i<N;++i) {
? ? printf("%s\n",*(p+i));? ? ? ? ? ? // 使用指針將字符串?dāng)?shù)組中的字符串打印出來(lái)
? }
}
示例結(jié)果:
$ gccex015.c-odemo
$ ./demo
你好 C語(yǔ)言1
你好 C語(yǔ)言2
你好 C語(yǔ)言3
你好 C語(yǔ)言4
你好 C語(yǔ)言5