Linux C 程序(NIGH)

指针和指针数组

 1 #include<stdio.h>
 2
 3 int main() {
 4
 5         int  a = 100 , b = 200 ;
 6         int *p1 = &a , *p2 = &b ;
 7
 8         printf("%d,%d\n",a ,b);
 9         printf("%d,%d\n",*p1,*p2);
10         printf("%x,%x\n",&a,&b);
11         printf("%x,%x\n",p1,p2);
12
13         *p1 = *p1 * 3;
14         printf("%d\n",a);
15         printf("%d\n\n",*p1);
16
17         p1 = &b;
18         printf("%x\n",p1);
19         printf("%x\n",p2);
20
21         return 0;
22
23
24 }

指针数组

 1 #include<stdio.h>
 2
 3 // 不同方式输出数组
 4 int main(){
 5         int a[10] , i , *p=NULL;
 6
 7         for( i = 0 ; i < 10 ; i++){
 8                 a[i] = i;
 9         }
10
11         for(i = 0 ; i < 10 ; i++){
12                 printf("%d ",a[i]);
13         }
14         printf("\n");
15
16         for(i = 0 ; i < 10 ; i++){
17                 printf("%d ",*(a+i));
18         }
19         printf("\n");
20
21         for(p = a ; p < a+10 ;){
22                 printf("%d ",*p++);
23         }
24         printf("\n");
25
26         return 0;
27 }
28 ~      

* ,++ ,--优先级相同

*p++:先取得当前p所指向得变量值,再使p指向后一个变量。相当于 a[i++]

*p--:先取得当前p所指向得变量,再使p指向前一个变量,相当于a[i--]

*++p:先使指向后一个变量,再取p所指向得变量得值,相当于a[++i]

*--p :先使得p指向前一个变量,再取p所指向得变量得值,相当于 a[--i]

数组元素也可以是指针类型:这种数组称为指针数组,也就是说指针数组得每个元素都是指针变量。

1 int *p[5];

*  运算符得优先级低于 [  ]

p先与5结合,显然他是一个数组,再与*结合表示数组元素类型全是指针。

这里的p是一个二级指针。

时间: 2024-10-01 04:54:25

Linux C 程序(NIGH)的相关文章

Linux服务器程序规范

除了网络通信外,服务器程序还必须考虑许多其他细节问题,零碎,但基本上时模板式的. ---引 Linux服务器程序一般以后台形式运行.后台程序又称守护进程.它没有控制终端,因而也不会意外接受用户输入.守护进程的父进程一般是init进程(pid=1). Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器可以输出日志到专门的UDP服务器.大部分后台进程都在/var/log下有自己的日志目录. Linux服务器程序一般以某个专门的非root身份运行.mysqld, httpd

Linux C程序异常退出怎么办——core文件帮你忙

想必你一定遇到过Linux下程序异常退出的问题,异常退出貌似有一种神奇的魔力,会让你神经突然紧张.不要怕,Linux是很强大的,在程序退出的时候,会在可执行文件所在的目录生成一个core文件,它很好地记录了一些神秘而又必要的东西,帮助你定位到错误的根源,想想以前面试的时候人家闻到core文件,我答不上来,你说面试官会怎样想,那么就来说说core文件. core文件实际上就是一个内存映象同时加上一些调试信息. 首先,你得打开系统的core文件生成开关吧,终端中输入ulimit -c命令,若显示0表

linux应用程序开发-文件编程-系统调用方式

在看韦东山视频linux驱动方面有一些吃力,究其原因,虽然接触过linux应用程序编程,但是没有深入去理解,相关函数用法不清楚,正好看到国嵌视频对这一方面讲的比较透彻, 所以把学习过程记录下来,也作为linux应用程序开发的一个系列吧! 文件编程有两种方式,一是系统调用方式,二是库函数调用. 前者依赖特定的平台,后者不依赖平台. 系统调用:创建 int creat(const char *filename,mode_t mode); filename:要创建的文件名 mode:创建模式 S_IR

linux 统计 程序 运行时间

测试 代码运行时间 linux 中的 <sys/time.h> 中 有个函数可以获取当前时间,精确到 微秒 ---->  gettimeofday() 1 #include <sys/time.h>       // int gettimeofday(struct timeval *tv, struct timezone *tz); 2 /********************************************* 3 * struct timeval 4 *

使用RPM包工具和源码包编译安装Linux应用程序

系统命令:一般在/bin和/sbin目录中,或为Shell内部指令,完成对系统的基本管理工作,例如IP配置工具 应用程序:通常在/usr/bin和/usr/sbin目录中,完成相对独立的其他辅助任务,例如网页浏览器 Linux应用程序的组成 /usr/bin     普通可执行程序文件,普通用户即可执行 /usr/sbin    服务器程序.管理程序文件,只有管理员能执行 /etc         配置文件,文件较多时会创建子目录 /var/log     日志文件 /usr/share/doc

Linux C程序的编译

Linux C程序的编译过程 学习一门语言程序,本人觉得还是得学习它的编译规则,现在,通过小例子小结下自己对C编译的认识. /*test.c     了解C程序的编译*/ #include <stdio.h>int main(void){ printf("Hello World!\n"); return 0;} 对于test.c,我们常用一步编译到位的命令是: gcc -o test test.c  或者  gcc test.c -o test 实际上,上面的这个编译命令包

配置开发支持高并发TCP连接的Linux应用程序全攻略

http://blog.chinaunix.net/uid-20733992-id-3447120.html http://blog.chinaunix.net/space.php?uid=16480950&do=blog&id=103598 原文见:http://www.cppblog.com/flashboy/articles/47012.html1.修改用户进程可打开文件数限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到

VELT-0.1.5开发:在vs2013下调试Linux GUI程序

VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件,将可以在visual studio的IDE中进行Linux应用程序的开发(包括编译和调试),也可以进行uboot和linux内核的编译,并根据编译时的错误信息正确定位到源码.目前的版本是0.1.4,仅支持vs2013.此插件可以在CSDN下载频道下载(http://download.csdn.net/detail/lights

嵌入式linux应用程序调试方法

嵌入式linux应用程序调试方法 四 内存工具 17 4.1 MEMWATCH 17 4.2 YAMD 22 4.3 Electric Fence 24 五 C/C++代码覆盖.性能profiling工具 24 5.1 用gcov来测试代码覆盖率 25 5.2 使用gprof来优化你的C/C++程序 35 四 内存工具 您肯定不想陷入类似在几千次调用之后发生分配溢出这样的情形. 许多小组花了许许多多时间来跟踪稀奇古怪的内存错误问题.应用程序在有的开发工作站上能运行,但在新的产品工作站上,这个应用