char *argv[] 与 char **argv
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[])//同int main(int argc,char **argv)
{
char *str_test = "hello wang";
int i,j,len;
for(i=;i<argc;i++)
{
printf("argv%d is %s\n",i,argv[i]);
len = strlen(argv[i]);
printf("len = %d\n",len);
for(j=;j<len;j++)
{
printf("argv%d%d is %c\n",i,j,argv[i][j]);
}
}
printf("str_test = %s\n",str_test);
printf("str_test = %c\n",str_test[]);
return ;
}
//argv:字符串数组,内容为指向字符串的指针(argv[0],argv[1],argv[2])
//argv[0],argv[1],argv[2]分别指向第1,2,3个字符串的指针
//argv[0][i],argv[1][i],argv[2][i]分别为第1,2,3个字符串中的第i个字符
//strlen():计算的是字符串实际个数(长度),不包括'\0',遇到第一个'\0'结束.如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止.
//sizeof():返回的是变量声明后所占的内存数(即变量类型的字节数),不是实际长度,此外sizeof不是函数,仅仅是一个操作符,strlen()是函数
//不严格的来看: *str = c[]
**str = *str[] = c[][]
/*wang@wang-X455LJ:~/program_test/c_program_test$ ./test wang cai
argv0 is ./test
len = 6
argv00 is .
argv01 is /
argv02 is t
argv03 is e
argv04 is s
argv05 is t
argv1 is wang
len = 4
argv10 is w
argv11 is a
argv12 is n
argv13 is g
argv2 is cai
len = 3
argv20 is c
argv21 is a
argv22 is i
str_test = hello wang
str_test = e*/
char *argv[] 与 char **argv的更多相关文章
- (转)Should I use char** argv or char* argv[]
As you are just learning C, i recommend you to really try to understand the differences between ar ...
- char **argv 与char *argv[]
1.char **argv 分析:argv是一个指针变量,argv的指向(*argv)是char *,也就是argv指向的也是一个指针 : *argv的指向(**argv)是char. 2.char ...
- execve(file, argv, env)参数argv获取字符串个数
/* Copyright (C) 1999, 2000, 2002, 2003 Free Software Foundation, Inc. This file is part of the GNU ...
- C语言执行时报错“表达式必须是可修改的左值,无法从“const char [3]”转换为“char [120]” ”,原因:字符串不能直接赋值
解决该问题的方法:使用strcpy函数进行字符串拷贝 原型声明:char *strcpy(char* dest, const char *src); 头文件:#include <string ...
- C++中 char *s 和 char s[] 的区别
原因 刚好看到给main传递参数,书上(C++Primer)说“ int main(int argc, char *argv[])也可以写成 int main(int argc, char **arg ...
- 理解C/C++中const char*、char* const、const char* const、char* const*等等
先说些题外话,今天学习execve(2)的使用,由于书上代码使用的是C89标准,所以下面这种代码都被我修改了 char* s[] = { "aaa", "bbb" ...
- char 与 signed char 和 unsigned char三者之间的关系
# char 与 signed char 和 unsigned char三者之间的关系 三者都占用 1个字节,即 8 bit signed char取值范围(-128, 127) unsigned c ...
- 关于 char 和 unsigned char 的区别
首先卖个关子: 为什么网络编程中的字符定义一般都为无符号的字符? char buf[16] = {0}; unsigned char ubuf[16] = { 0 }; 上面两个定义的区别是: ...
- const char*和const char[]怎么识别?
#include <iostream> using namespace std; template<typename T> class _ischararray_; templ ...
随机推荐
- 【linux】【指令集】查看是否打开selinux
> getenforce selinux相关原理资料参考 <鸟哥的linux私房菜> http://cn.linux.vbird.org/linux_server/0210netw ...
- golang(go语言)调试和查看gc信息,以及gc信息解析
这里记录一下调试golang gc的方法 启用gc打印: # GODEBUG=gctrace=1 go run ./main.go 程序启动后gc将打印如下信息: gc 65 @16.996s 0%: ...
- HUD:4405-Aeroplane chess(期望飞行棋)
Aeroplane chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Pro ...
- list_for_each_entry()函数分析
list_for_each原型: #define list_for_each(pos, head) \ for (pos = (head)->next, prefetch(pos->nex ...
- Linux压缩与归档
文件的压缩 aaaaaabbbbccc压缩成为6a4b3c 压缩工具: gzip/gunzip: .gz后缀 只能压缩文件,不能压缩目录,因其不具备归档功能 ...
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类(转)
http://www.cnblogs.com/fly1988happy/archive/2012/09/25/2701237.html 1. 多态 在面向对象语言中,接口的多种不同实现方式即为多态.多 ...
- .Net Task常见问题
最近尝试使用一下Task,但是使用过程中因为API的不熟悉碰到了很多问题,不清楚什么时间来调用Task.Start(),具体该怎么使用等等. 如下所描述的Task.Start()方法均为实例方法. 1 ...
- ie9/8的iframe中jQuery报错
此文章用于对工作中遇到的问题进行记录 jQuery 版本:1.9.1 按照一般的思路,jquery 1.x的是支持ie9及以下的,但是今天发现jquery报错了,代码错误位置在源码版本的第4888行 ...
- 大数据学习——scala集合练习
package com /** * Created by ZX on 2016/4/5. */ object ListTest { def main(args: Array[String]) { // ...
- python列出指定目录下的所有目录和文件
import os import docx def scanfile(rootdir): result = [] for f in os.walk(rootdir): for files in f[2 ...