程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> C指針原理 (26)

C指針原理 (26)

編輯:關於C

7、字符串常量

#include

int main(int argc,int **argv){

printf ("%s","abcdefgh"+2);

}

dp@dp:~/test1 % cc test3.c -o mytest

dp@dp:~/test1 % ./mytest

cdefgh

8、函數指針

本博客所有內容是原創,如果轉載請注明來源

http://blog.csdn.net/myhaspl/


通過如下格式來聲明函數指針:

返回類型 (*函數指針變量名)(參數列表)

int add(int a,int b);

int main(void){

int (*myfunc)(int a,int b);

myfunc=add;

int x=myfunc(12,36);

printf("%d",x);

return 1;

}

int add(int a,int b){

return a+b;

}

~

dp@dp:~/test1 % cc test1.c -o mytest

dp@dp:~/test1 % ./mytest

48

8、命令行參數

打印參數個數,注意,命令本身也是一個參數,所以argc至少為1。

#include

int main(int argc,char **argv){

printf("%d\n",argc);

return 1;

}

~

dp@dp:~/test1 % cc test2.c -o mytest

dp@dp:~/test1 % ./mytest 12

下面沒有使用argc參數,直接使用了argv參數,通過判斷是否null,來決定參數列表是否結束

#include

#include

int main(int argc,char **argv){

while (*++argv!=NULL)

printf("%d\n",argv);

return 1;

}

~

dp@dp:~/test1 % cc test2.c -o mytest

dp@dp:~/test1 % ./mytest -a

-a

dp@dp:~/test1 % ./mytest -a 12 24

-a

12

24

通過如下格式來聲明函數指針數組:

返回類型 (*函數指針變量名[])(參數列表)

下面結合函數指針數組與命令行完成一些簡單的運算,通過命令行傳送運算符與數字。

#include

#include

int add(int a,int b){

return a+b;

}

int sub(int a,int b){

return a-b;

}

int main(int argc,char **argv){

int (*operate_func[])(int,int)={

add,sub};

int myresult=0;

int oper=atoi(*++argv);

printf ("%d\n",oper);

int mynum;

while (*++argv!=NULL)

{

mynum=atoi(*argv);

printf ("%d ",mynum);

myresult=operate_func[oper](myresult,mynum);

}

printf ("\n%d\n",myresult);

return 1;

}

dp@dp:~/test1 % cc test2.c -o mytest

dp@dp:~/test1 % ./mytest 0 1 13 52

0

1 13 52

66

dp@dp:~/test1 % ./mytest 1 1 13 52

1

1 13 52

-66

dp@dp:~/test1 %

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved