物聯網學習教程— 字元指標作函式引數
用字元陣列作引數
例 1. 用函式呼叫實現字串的複製
#include <stdio.h>
void main ()
{ void copy_string ( char from [ ], char to [ ]) ;
char a[ ]= ″I am a teacher .″;
char b [ ]= ″ you are a student .″;
printf( “ string a= %s\n string b=%s\n″,
a,b) ;
printf( “ copy string a to string b:\n ” ) ;
copy_string (a,b);
printf(" \ nstring a=%s \ nstring b=%s \ n" , a , b);
}
void copy_string ( char from [ ], char to [ ])
{ int i=0;
while ( from [i]!=′\0′)
{to [i]= from [i];i++;}
to [i]=′\0′;
}
程式執行結果如下:
string a = I am a teacher .
string b = you are a student .
copy string a to string b:
string a = I am a teacher .
string b= I am a teacher .
(2) 形參用字元指標變數
#include <stdio.h>
void main ()
{ void copy_string ( char * from , char * to) ;
char * a=″I am a teacher . ″;
char * b=″ you are a student .″;
printf("string a= %s\n string b=%s\n″,a,b ) ;
printf("copy string a to string b:\n ");
copy_ string(a,b);
printf(" \ nstring a=%s \ nstring b=%s \ n" , a , b);
}
void copy_string ( char * from, char * to)
{ for (; *from !=′\0′; from ++, to ++)
*to = from ;
*to =′\0′;
}
(3) 對copy string 函式還可作簡化
1 、將 copy_string 函式改寫為
void copy_string ( char *from , char * to)
{while (( * to= *from )!=′\0′)
{to ++; from ++;}
}
• copy_string 函式的函式體還可改為
{
while (( *to ++= *from ++)!=′\0′);
}
• copy_string 函式的函式體還可寫成
{
while ( *from !=′\0′)
*to ++= *from ++;
*to =′\0′;
}
•上面的 while 語句還可以進一步簡化為下面的 while 語句:
while ( *to ++= *from ++);
它與下面語句等價:
while (( *to ++= *from ++)!=′\0′);
將*from 賦給 *to ,如果賦值後的 *to 值等於′\0′則迴圈終止(′\0′已賦給 *to )
•函式體中 while 語句也可以改用 for 語句:
for (;( *to ++= *from ++)!=0;);
或
for (; *to ++= *from ++;);
•也可用指標變數,函式 copy_string 可寫為
void copy_string ( char from [ ], char to[ ])
{char * p1, * p2;
p1=from ;p2=to;
while (( *p2 ++= *p1 ++)!=′\0′);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2654989/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 物聯網學習教程—函式引數和函式的值函式
- 物聯網學習教程—字串與指標字串指標
- 物聯網學習教程— 多維陣列與指標陣列指標
- 物聯網學習教程—函式的返回值函式
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- 傳遞指標引數(函式內部給指標賦值)示例指標函式賦值
- 物聯網學習教程——if語句
- 指標函式 和 函式指標指標函式
- 物聯網學習教程——switch語句
- 物聯網學習教程——if語句2
- 函式指標練習題函式指標
- 二級指標,二維陣列函式引數傳遞指標陣列函式
- 物聯網學習教程—const關鍵字
- 物聯網學習教程—檔案的定位
- 物聯網學習教程——執行緒池執行緒
- 物聯網學習教程—列舉型別型別
- 物聯網學習教程——邏輯運算子和邏輯表示式
- 笨辦法學C 練習18:函式指標函式指標
- 函式作為引數傳遞函式
- 函式指標函式指標
- 物聯網學習教程—Const用法和體會
- 物聯網學習教程—const用法的體會
- [C++] 成員函式指標和函式指標C++函式指標
- 【不在混淆的C】指標函式、函式指標、回撥函式指標函式
- 巨集_變數_函式_指標_標頭檔案變數函式指標
- golang學習之路之函式可變引數Golang函式
- 物聯網學習教程—c++學習應該注意的點C++
- C語言函式傳遞指標引數的問題詳解C語言函式指標
- 物聯網學習教程——格式輸入與輸出
- 物聯網學習教程—檔案的讀寫二
- 物聯網學習教程—檔案的讀寫一
- 物聯網學習教程—— 執行緒私有資料執行緒
- 物聯網學習教程——一維陣列的引用陣列
- 物聯網學習教程——二維陣列的引用陣列
- 物聯網學習教程—用typedef定義型別型別
- typedef void (*Fun) (void) 的理解——函式指標——typedef函式指標函式指標
- 物聯網學習教程—定義結構體型別變數的方法結構體型別變數
- 函式指標&回撥函式Callback函式指標