【C++基础】 指针&字符串&数组】的更多相关文章

先贴代码,总结以后再写,和5中内存分配方式密切相关 PS: str 返回整个字符串,str[0],*str返回首字符h char *strA(){ char str[]="hello!"; //局部数组,局部变量, str存在栈区 return str; //局部变量不能传值,估计会成为野指针 //函数返回局部变量的地址,当被调用完成时,str就释放了,因此返回结果是不确定的且不安全的 } char *strA2(){ char *str = "hello2!";/…
一. 什么是shell shell是一个用C语言编写的程序,它是用户使用Linux的桥梁,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务. shell脚本是一种shell编写的脚本程序 常见的shell种类 Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again Shell(/bin/bash) C Shell(/usr/bin/csh) K Shell(/usr/bin/ksh) S…
需求: "ff555d", "114ddd", "114dd","aaa", "aaab", "aaa" d对它们进行排序 头文件: #include<stdlib.h> #include<stdio.h> #include<string.h> 函数原型: void printArray(char **buff,int len); void sortB…
//指针变量就是用来存储地址的,只能存储地址 格式:  int  *p;  这个p为指针变量:指针变量占8个字节 类型是用来说明这个指针指向的类型: 比如上边的int代表这个指针变量会指向int类型的存储空间: int *p = &a;//这样一句可以写,此时的*只是一个标志,表示这个*只是表示p是个指针: *p = &a;//这样写就错了:此时*p表示取p指向的空间的值:   指针疑问:指针既然都占据8个字节,那么为什么要划分类型, 是因为当用*p指针取值或者赋值的时候,知道该取几个字节…
1. 数组 1.1 数组作为函数参数 (1) 如果使用数组作为函数的参数,则实参和形参都是数组名,且类型要相同.数组名做参数时传递的是地址 (2) 使用方法: void rowSum(int a[][4], int n, int m); // 不能写成 int a[][];也不能写成int **a; 1.2 对象数组 (1) 声明语句 ① 类名 数组名[常量表达式]; (2) 例子: Location a[2] = {Location(1,2), Location(3,4)}; Location…
一: 字符串 概述: Go 语言将字符串作为 种原生的基本数据类型,字 符串的初始化可以使用字符串字面量. (1)字符串是常量,可以通过类 数组 索引访问其字节单元,但是不能修改某个字节的值 (2)宇符串转换为切片[]byte( 要慎用,尤其是当数据量较大时(每转换一次都需复制内容) a := ” hello, world !” b : = []byte (a) (3)字符串尾部不包含 NULL 字符 (4)字符串类型底层实现是一个二元的数据结构,一个是指针指向字节数组的起点,另一个是长度 (5…
一.用指针遍历数组元素 1.最普通的遍历方式是用数组下标来遍历元素 1 // 定义一个int类型的数组 2 int a[4] = {1, 2, 3, 4}; 3 4 int i; 5 for (i = 0; i < 4; i++) { 6 printf("a[%d] = %d \n", i, a[i]); 7 } 输出结果: 2.接下来我们用指针来遍历数组元素 先定义一个指针,指向数组的第一个元素 // 定义一个int类型的数组 int a[4] = {1, 2, 3, 4};…
Swift语法基础入门二(数组, 字典, 字符串) 数组(有序数据的集) *格式 : [] / Int / Array() let 不可变数组 var 可变数组 注意: 不需要改变集合的时候创建不可变集合是很好的实践.如此 Swift 编译器可以优化我们创建的集合. // 声明数组 let arr1: Array<Int> // 推荐 let arr2: [Int] arr2 = [10, 20] // 先定义再初始化 //arr2 = [30, 40] var arr3: [Double]…
在做面试100题中第21题时,发现char *astr="abcdefghijk\0";和char astr[]={"abcdefghijk"};有点区别,以前一直以为是一样的,但是在该程序中采用字符串指针运行一直出错.后来在网上查查,果然发现大大的不同. 展示如何出错 分析:当你需要修改字符串时,采用指针指向该字符串编译通过但是运行出错,而采用字符串数组时不会出现这样的问题.我们知道计算机有堆栈空间供编程人员使用,第一行,astr为栈上分配的一个指针,而右边在堆上…
getchar与putchar缓冲区 有下面的语句段: while ((s = getchar()) != '\n'){ putchar(s); putchar("\n"); } 这个while循环是怎么工作的呢? 首先getchar在数据缓冲区里读数据进来,这个读取数据是一个个读的,循环依次判断读进来的字符是不是为换行符,是的话就跳出循环,不是就打印出该字符.其实在getchar读取字符之前,通过键盘输入的字符已经通过stdin流全部存入了缓冲区中,getchar只在用户输入了换行符…