重拾C,一天一点点_11
命令行参数
在支持C语言的环境中,可以在程序开始执行时将命令行参数传递给程序。
调用主函数main时,它带有两个参数,第一个参数(argc,用于参数计数)的值表示运行程序时命令行参数的数目;第二个参数(argv用于参数向量)是一个指向字符串数组的指针,其中每个字符串对应一个参数。
echo hello, world //命令行中各参数间以空格隔开,hello,算一个参数
按照C语言的约定,argv[0]的值是启动该程序的程序名,因此argc的值至少为1.如果argc为1,则说明程序名后面没有命令行参数。argv[0]、argv[1]和argv[2]分别对应"echo"、"hello,"、"world"。最后一个可选参数为argv[argc-1]。ANSI标准要求argv[argc]的值必须为一空指针。
//回显程序命令行参数
#include <stdio.h>
/****回显程序命令行参数***/
main(int argc, char *argv[]){
/*
int i;
for(i=1; i<argc; i++){
printf("%s%s",argv[i],(i<argc-1) ? " " : "");
}
*/
while(--argc > ){
printf("%s%s", *++argv, (argc > ) ? " " : "");
}
printf("\n");
return ;
}
UNIX系统中的C语言程序有一个公共的约定:以负号开头的参数表示一个可选标志或参数。假定用-x(代表“除...之外”)表示打印所有与模式不匹配的文本行,用-n(代表”行号“)表示打印行号,那么以下命令:
find -x -n 模式 //打印所有与模式不匹配的行,并在每个打印行的前面加上行号
指向函数的指针
int (*comp)(void *, void *) //表明comp是一个指向函数的指针,该函数有两个void *类型的参数,其返回值类型为int
int *f(); //f函数,返回一个指向int类型的指针
int (*pf)(); //pf是一个指向函数的指针,返回int类型的对象
*是一个前缀运算符,其优先级低于(),也低于[]。
这一部分有点走过场了,回头再加强吧。
结构:感觉对象是结构的加强版
struct point{
int x;
int y;
}
关键字struct引入结构声明,后接花括号。struct后面的名字可选,称为结构标记,用于为结构命名。
struct {...} x, y, z; //类似int x, y, z;声明
如果结构声明的后面不带变量表,则不需要为它分配存储空间,仅描述一个结构的模板。
struct point pt; //定义一个struct point类型的变量pt
#include <stdio.h>
main(){
struct point{
int x;
int y;
};
struct point pt1;
pt1.x = ;
pt1.y = ;
struct point pt2 = {, };
printf("%d,%d\n", pt1.x, pt2.y); //100,300
struct rect{
struct point pt1;
struct point pt2;
};
struct rect re1 = {pt1, pt2};
printf("%d\n", re1.pt1.x); //
}
#include <stdio.h>
struct point makepoint(int x, int y); struct point{
int x;
int y;
};
main(){
struct point pt1 = makepoint(, );
printf("%d\n", pt1.x+pt1.y); //
} struct point makepoint(int x, int y){
struct point temp;
temp.x = x;
temp.y = y;
return temp;
}
struct point *pp; //定义一个指向struct point类型对象的指针。(*pp).x此处的圆括号不可省略,因为结构成员运算符“.”的优先级比“*”高。
结构指针使用频度高,为方便,可简写如下:
p->结构成员 //p是一个指向结构的指针,有点类似$this->name
运算符.和->是从左至右结合的: r.pt1.x <=> rp->pt1.x
附:
1.、老师给全班60个学生布置了两道作业题,其中做对第一题的有31人,做对第二题的有40人,另有4人都做错了,请问两道题都做对的有几个人?
小学的题目,刚才自己看了这题感觉到有点绕了,呵呵,记得以前做这种题目还是很厉害的,想当年了。
2、毕业了,寝室的5个人需要分书架,一共有3个一模一样的书架,把这三个书架分给3个人,然后分到书架的三个人各拿出1000元,平均分给其余两人。这样一分,大家都觉得挺合理的。事后,其中一人算了半天也不知道到底一个书架是多少钱,你能告诉他吗?
原文作者:lltong,博客园地址:http://www.cnblogs.com/lltong/
重拾C,一天一点点_11的更多相关文章
- 重拾C,一天一点点_2
类型转换一般来说,如果二元运算符的两个操作数具有不同的类型,较低的类型提升为较高类型,结果为较高类型.表达式由float类型的操作数不会自动转换为double类型.使用float类型主要是为了在使用较 ...
- 重拾C,一天一点点
数据类型及长度 char 字符型,占用一个字节 int 整型,通常代表特定机器中整数的自然长度 short 16位 int 16位或32位 ...
- 重拾C
重拾C,一天一点点_10 来博客园今天刚好两年了,两年前开始学编程. 忙碌近两个月,项目昨天上线了,真心不容易,也不敢懈怠,接下来的问题会更多.这两天调试服务器,遇到不少麻烦. 刚出去溜达了一下,晚上 ...
- CSS魔法堂:重拾Border之——更广阔的遐想
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- CSS魔法堂:重拾Border之——不仅仅是圆角
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- CSS魔法堂:重拾Border之——图片作边框
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- CSS魔法堂:重拾Border之——解构Border
前言 当CSS3推出border-radius属性时我们是那么欣喜若狂啊,一想到终于不用再添加额外元素来模拟圆角了,但发现border-radius还分水平半径和垂直半径,然后又发现border-t ...
- 重拾Blog
上个月是我入职现在的公司三周年的月份,所以又续订了五年的合同,最近有一些思考,也不知道这个五年能否还会一直在这个公司工作. 一切随缘吧. 闲适有毒,忙碌的时光总是过的很快,自从加入这个公司以来,日常的 ...
- [linux]重拾linux
起因 因为想重拾起linux,同时需要用docker起几个镜像,用来学习网络知识.本来想直接去阿里云上买,后来一想自己机器上,起一个linux是个不错的选择,毕竟不花钱! 还可以用来做本地测试,学习使 ...
随机推荐
- nyoj 68 三点顺序
点击打开链接 三点顺序 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给 ...
- [POJ 1787]Charlie's Change (动态规划)
题目链接:http://poj.org/problem?id=1787 题意:有4种货币分别是1元,5元,10元,20元.现在告诉你这四种货币分别有多少个,问你正好凑出P元钱最多可以用多少货币.每种货 ...
- ASP.NET MVC开发微信(一)
public string index() { return Content(""); }
- bochs安装一系列问题
http://blog.chinaunix.net/uid-23817499-id-3418083.html http://www.mouseos.com/os/tools/bochs.html ...
- Hive基础之Hive开启查询列名及行转列显示
Hive默认情况下查询结果里面是只显示值: hive> select * from click_log; OK ad_101 :: ad_102 :: ad_103 :: ad_104 :: a ...
- NOIP 2005 过河
过河 Time Limit: 1000MS Memory Limit: 65536K 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石 ...
- 转载:Cocos2D-x 游戏接入 Windows 设备所需做的六件事
原文地址:http://msopentech.com/zh-hans/blog/2014/05/09/cocos2d-x-%E6%B8%B8%E6%88%8F%E6%8E%A5%E5%85%A5-wi ...
- CODEVS1291 火车线路
http://codevs.cn/problem/1291/ 题目描述 Description 某列火车行使在C个城市之间(出发的城市编号为1,结束达到的城市的编号为C),假设该列火车有S个座位,现在 ...
- Hot OS'15 summary
My OS Ought to Know Me Better: In-app Behavioural Analytics as an OS Service Earlence Fernandes, U ...
- TCP/IP详解学习笔记(1)-- 概述
1.TCP/IP的分层结构 网络协议通常分不同层次进行开发,每一层分别负责不同的同信功能.TCP/IP通常被认为是一个四层协议系统. 如图所示. 1)链路层(数据链路层 ...