c语言指针数组、字符串

有写错的地方,请帮忙纠错,感谢~

main方法的第二个参数是指针数组,存储的都是指针,所以每个元素的地址都是char **类型

字符串打印的时候,会自动截止到0字符

数组的名字是指针,代表第一个元素的地址

指针数组&&数组指针

指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。

数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指针”的简称。

main函数的参数

参数char *argv[]是一个指针数组,存储的是每个传递过来的参数的地址。

argv 是数组名称,代表第一个元素[0]的地址,也是一个指针,类型是char **。那么*argv就代表第一个元素的值,类型是char *是一个指针,这个指针指向的是第一个参数的首地址。而第一个参数肯定是字符串,所以进行获取的时候,printf通过该字符串的首地址,就可以打印出整个字符串命令。

#include

int main(int argc, char *argv[]) {

printf("%d%s\n", argc,*(argv+1));

}

循环遍历打印所有接收到的参数

#include

int main(int argc, char *argv[]) {

for(int index = 0; index < argc; index++) {

/* argv本身代表`char *argv[]`的第一个元素的地址,地址进行递增可以遍历数组,然后通过`*`来获取改地址对应的元素内容(这里元素的内容也是个地址)*/

printf("%s\n", *(argv+index));

}

}

字符串

有关于字符串根据首地址输出打印整个字符串以及特殊0字符

#include

/* 字符串操作 */

#include

int main(int argc, char *argv[]) {

char str[] = "hello\0 world";

/* str 在这里是一个指针,是字符串数组的第一个元素的地址 */

printf("%d\n", &str[0] == str);

/* 那么为什么printf打印一个地址的时候,会将整个字符串打印出来呢?*/

/* 因为在存储字符串的时候,会将自动在字符串的最后添加一个\0,printf打印到\0截止 */

printf("%s\n", str);

/* 如果这样定义字符串数组,需要后面添加\0 */

/* 只有字符串数组可以一直寻址到\0 */

char arr[] = {'a','b','c','\0'};

printf("%c\n", arr[0]);

printf("%s\n", arr);

/* 字符串数组的长度,不包含\0 */

printf("%lu\n", strlen(arr));

}

c语言参数string类型,C语言main方法的参数打印相关推荐

  1. java main 参数传递参数_Java千问:Java语言如何给main方法传递参数?

    大家都知道,Java语言运行程序的入口方法叫做main,这个方法有一个参数,这就表示说,我们要运行主方法,就必须给main方法传递一个参数.但是,大家似乎对这个参数向来都是视而不见,从来都没给主方法传 ...

  2. Java语言基础Day14(内部类、类作为成员变量类型、接口作为成员变量类型、接口作为方法的参数或返回值、红包案例、JDK9的JShell、编译器的两点优化)

    今日内容 一.内部类 1.内部类的概念与分类 2.成员内部类的定义 3.成员内部类的使用 4.内部类的同名变量访问 5.局部内部类定义 6.局部内部类的final问题 7.匿名内部类 匿名内部类定义格 ...

  3. python程序设计语言是什么类型的语言-Python 是弱类型的语言 强类型和弱类型的语言区别...

    Python 是弱类型的语言 在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言.C++.Java 是强类型语言的代表. 下面我们以 C++ 为例来演示强类型语 ...

  4. 动态语言,静态类型,强类型定义语言,弱类型定义语言,

    1 动态语言和静态语言 通常我们所说的动态语言.静态语言是指动态类型语言和静态类型语言.    1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时 ...

  5. 编译型和解释型、动态语言和静态语言、强类型定义语言和弱类型定义语言

    一.编译型与解释型语言 我们编写程序也就是源代码基本是用高级编程语言,比如JavaScript, java, c等等,这些语言计算机是不理解的,所以需要转化(翻译)成计算机理解的机器语言,或者说目标C ...

  6. main方法中args_public static void main(String [] args)– Java main方法

    main方法中args public static void main(String[] args) is the most important Java method. When you start ...

  7. 【Java从零到架构师第③季】【26】SpringMVC-反射获取方法参数名_SpringMVC是如何获取方法的参数名的

    持续学习&持续更新中- 守破离 [Java从零到架构师第③季][26]SpringMVC-反射获取方法参数名_SpringMVC是如何获取方法的参数名的 利用反射获取方法的参数名 直接编译 修 ...

  8. C语言没有string类型

    C语言中没有string类型. string类型是 C++.java.VB等编程语言中的. 在java.C#中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象 ...

  9. protobuf string类型_Protobuf 语言指南(proto3)

    定义消息类型 首先让我们看一个非常简单的例子. 假设要定义搜索请求消息格式, 其中每个搜索请求都有一个查询字符串, 您感兴趣的特定结果页面以及每页的一些结果. 这是用于定义消息类型的 .proto 文 ...

最新文章

  1. 安卓下使用 dropbear 开启SSH And arm 下的busybox
  2. Java项目:健身管理系统(Java+ssm+springboot)
  3. 基于 react, redux 最佳实践构建的 2048
  4. vim查找忽略大小写
  5. 工业相机与镜头分辨率匹配
  6. Maven的pom.xml文件详解------Build Settings
  7. android+4.4+稳定性,新系统新UI!台电A10h四核安卓4.4.2性能测试
  8. JAVA学习笔记_五JAVA开发中的WEB前端技术
  9. jeewx 微信管家 - 举办商业版本免费试用活动
  10. 单片机应用中的c语言用词注解,单片机C语言程序注解
  11. 初一音乐计算机教学方案,人音版七年级音乐教案
  12. 316. 去除重复字母
  13. 计算机网络安全综述及防火墙浅析
  14. 我的世界服务器哪个有自动铺路,超简单命令方块铺路机 我的世界自动铺路机制作教程(附存档)...
  15. 虚拟机VMware插入U盘操作系统崩溃死机问题及解决方法
  16. 杭电Oj刷题(2027)
  17. win10安装过程中一直卡在海内存知己天涯若比邻界面解决方法
  18. 【EXLIBRIS】随笔记 009
  19. 编写一个方法,将一段文本中的各个单词的字母顺序翻转题
  20. Python挑战游戏( PythonChallenge)闯关之路Level- 6

热门文章

  1. mysql between 等于_MySQL中BETWEEN子句的用法详解
  2. python 代码段的标志_Python代码类型标志
  3. 这样做,RMAN备份速度可提高6倍!
  4. 10个问题让你快速避开java中的jdbc常见坑
  5. 又一数据库高危漏洞爆出,数据安全如何有效保障?
  6. 云小课 | ModelArts Pro 自然语言处理套件:高效构建行业高精度文本处理模型
  7. 知识+AI融合创新探索,华为云论文被AI顶级学术期刊IEEE TPAMI接受
  8. 【Python成长之路】python并发学习:多进程与多线程的用法及场景介绍
  9. 【Python成长之路】装逼的一行代码:快速共享文件【华为云分享】
  10. 【我的物联网成长记2】设备如何进行选型?