C指针原理 (26)-C指针基础

原创 2013年12月05日 22:54:53

7、字符串常量 

#include <stdio.h>

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 <stdio.h>

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 <stdio.h>

#include <stdlib.h>

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 <stdio.h>

#include <stdlib.h>

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 %

版权声明:本文为博主原创文章,未经博主允许不得转载。http://blog.csdn.net/myhaspl

相关文章推荐

C指针原理(96)-C基础综合应用

fgets(由文件中读取一字符串)  相关函数 open,fread,fscanf,getc  表头文件 include  定义函数 har * fgets(char * s,int size,...

C指针原理(36)-gtk

第一次运行时使用开始菜单里面的XLaunch来启动,产生一个初始的配置文件。对于简单的使用来说,不需要任何特殊的配置,一切使用默认即可。Xming的具体配置和使用可以参考http://www.stra...

C指针原理(35)-gtk

#include static void destroy(GtkWidget *window,gpointer data){     printf("%s",gtk_label_get_text...

C指针原理(9)

转自:http://blog.csdn.net/myhaspl/article/details/14224755 我们使用m标记可以直接在内存中对数进行操作,前面的例子对变量进行操作时都需要将变...

C指针原理(37)-gtk

下面演示了如何在窗口中增加一个按钮,示例代码均有注释  #include  static void print_hello (GtkWidget *widget,gpointer data) { //...

C指针原理(53)-Ncurses-文本终端的图形

6、自动滚屏 dp@dp:~/cursestest % cat 2.c #include   #include     int main(void){        int y,x,i,j,h,w; ...

C指针原理(60)-Ncurses-文本终端的图形

我们定义delete键为删除某个字符,回车符表示换行,同时定义F12为删除整行,F1为退出。 麦好的AI乐园博客所有内容是原创,如果转载请注明来源 http://blog.csdn.net...

C指针原理(29)-AT&T汇编

linux-汇编静态符号 .equ 符号名 值 比如 .equ PI 3.1415 使用方式 为: movl $PI,%eax 汇编数据类型 .ascii 文本字符串 ....

C指针原理(2)-AT&T汇编

.section .text data: .byte 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01#8字节 .globl main main: movl...

C指针原理(1)-AT&T汇编

汇编在LINUX系统下的意义远远大于WINDOWS系统,LINUX内核部分代码就是汇编编写的。然后,绝大多数 Linux 程序员以前只接触过DOS/Windows 下的汇编语言,这些汇编代码都是 In...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C指针原理 (26)-C指针基础
举报原因:
原因补充:

(最多只允许输入30个字)