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 ...
随机推荐
- Python中类的声明,使用,属性,实例属性,计算属性及继承,重写
Python中的类的定义以及使用: 类的定义: 定义类 在Python中,类的定义使用class关键字来实现 语法如下: class className: "类的注释" 类的实体 ...
- Python之简单Socket编程
Socket编程这块儿还是比较重要的,记录一下:实现服务器端和客户端通信(客户端发送系统指令,如ipconfig等,服务器端执行该指令,然后将指令返回结果给客户端再传过去,设置一次最多直接收1024字 ...
- JAVA基础篇—HashMap
/class Depositor package 银行储户; public class Depositor { private String id; private String name; priv ...
- 在spring boot中使用webSocket组件(一)
最近在项目中使用到了spring的webSocket组件,在这里和大家分享下,如有错误,欢迎大家指正. 在这里我使用的IDE工具是Intellij idea,框架是spring boot.spring ...
- Mybatis中接口和对应的mapper文件位置配置详解
Mybatis中接口和对应的mapper文件位置配置详解 原链接为:https://blog.csdn.net/fanfanzk1314/article/details/71480954 今天遇到一个 ...
- Linux下配置LAMP环境
先准备相关软件,并确保服务器已经安装了gcc,gcc-c++,make三个软件,以便后续编译过程. 首先安装, libxml2 ftp://xmlsoft.org/libxml2/ 下载最新版本(我的 ...
- webdriver高级应用- 启动带有用户配置信息的firefox浏览器窗口
由于WebDriver启动FireFox浏览器时会启用全新的FireFox浏览器窗口,导致当前机器的FireFox浏览器已经配置的信息在测试中均无法生效,例如已经安装的浏览器插件.个人收藏夹等.为了解 ...
- Python-函数参数的传递
作者:Vamei 出处:http://www.cnblogs.com/vamei,感谢博主的分享, python的函数参数传递有这样的几种形式: 1.位置传递 2.关键字传递 3.参数默认值传递 4. ...
- 九度oj 题目1443:Tr A
题目描述: A为一个方阵,则Tr A表示A的迹(就是主对角线上各项的和),现要求Tr(A^k)%9973. 输入: 数据的第一行是一个T,表示有T组数据. 每组数据的第一行有n(2 <= n & ...
- 皮尔逊相关系数的计算(python代码版)
from math import sqrt def multipl(a,b): sumofab=0.0 for i in range(len(a)): temp=a[i]*b[i] sumofab+= ...