个人理解的int数组和char数组

char数组中不论是一维还是二维的,在程序执行时每一块的分离依据都是以提供的起始地址到‘\0‘为一个处理的字符串。所以关于char[]的函数都是只提供相应起始地址作为形参就可以。

char[]互相交换内容时不是用的=号,而是使用strcpy(a,b),其中a为“被赋值的“char[]的起始地址,b为“要赋的值“的char[]的起始地址。要修改其中的某个字符则可以使用=号

另外例如char* a="abcd"和char b[5]="abcd";区别在于b可以任意修改字符数组中的某个字符,而a在初始化之后不能修改.

但是a可以改变自身所指向的地址,b为数组名为"指针常量"不能修改其指向地址.

二维的int数组int a[3][10],要将其中3个一维数组中的某个作为形参输入到函数中进行处理。例如:

#include<stdio.h>
void and1(int b[])
{
b[1] = b[1] + 1;
}
int main(void)
{
int a[3][2] = {1,2,3,4,5,6};
and1(a[2]);
printf("%d",a[2][1]);
return 0;
}

这个程序的目的就是要将二维int数组中的第三个数组的第二个元素加一。为什么这么写就可以了,是因为int数组是根据4个字节为一个处理的数值

形参b[]只是想要提供一个你要处理的一维数组的起始地址而已。

时间: 2024-10-13 09:49:39

个人理解的int数组和char数组的相关文章

int main (int argc, const char * argv[0]) 中参数的含义;指针数组和数组指针

恩,有的编译器初始化时候会产生这样的参数 argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名 1. 几种C++ 常见的参数种类 int main(void); int main(); int main(int argc, char **argv);   //等价于int main(int argc, char *argv[]),是否等价呢?是不是前一个可以表示任意长度的任意个数组,后一个只是定长的任意个数的数组?见下面 int main(int argc, c

char[]数组与char *指针的区别

char[]数组与char *指针的区别 问题描述 虽然很久之前有看过关于char指针和char数组的区别,但是当时没有系统的整理,到现在频繁遇到,在string,char[], char *中迷失了.由于string涉及的内容很多,因此本文中就先不整理了,对char[]和 char *进行了一个整理,原理可能还是不太明白,但至少印象深刻了很多. 整型数组和整型指针 在讨论字符数组.字符指针以及字符串之前,先看下整型数组与整型指针的区别 int a[]={1,2,3};//整型数组,a的指向不能

C/C++ string和char数组对比

string是c++特有的,使用时需添加头文件#include<string> (一)#include<string.h>和#include<cstring>以及#include<string.h>区别 <string.h> <string.h>是C版本的头文件,包含比如strcpy.strcat之类的字符串处理函数. <cstring> 在C++标准化(1998年)过程中,为了兼容以前,标准化组织将所有这些文件都进行了新

char数组中除去某个元素

1 /* 2 本程序说明: 3 4 char数组中除去某个元素(其实就是strcpy源码的变形) 5 6 */ 7 #include <iostream> 8 #include <cassert> 9 #include <cstring> 10 using namespace std; 11 12 char * remove_char(char* src, int length, char c){ 13 char *dst=src; 14 char *res=dst;

Java判断回文语句的程序(可变参数,String转化为char数组)

static void Huiwen(char... cs){     //char... cs  支持可变参数格式为 //(类型名... 变量名)--形参列表,相当于建立了一个长度可变的动态数组,系统根据用户需求来确定数组的长度 int b_ool=1; for(int i=0;i<cs.length/2;i++)    //length为这个可变数组的长度,注意此时长度为数组下表加1,通过cs.length-i-1可知 if(cs[i]!=cs[cs.length-i-1   // 判断 ]

char数组构造string

这是一个老掉牙的话题, 但是你稍加不注意就会出错. 最近在写一个可以跨平台打印的程序,就遇到这个问题,故记之.共勉! 用 char 数组初始化string #include <string> using std::string; using std::cout; int main(int argc, const char * argv[]) { char chArray[] = {'m', 'a', 'r', 'k'}; cout << "array size = &qu

CHAR数组转成STRING:C++

有些时候,键入了CHAR数组却不会知道到底有多长,是不是很差评呢?但是,转成STRING就可以啦QWQ 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <algorithm> 5 using namespace std; 6 7 char a[200]; 8 9 string string_char(char* a) 10 { 11 return a; 12 }

二维数组与交错数组的理解

1:数组: //二维数组 表示1个表格. //交错数组的本质是1个1维数组//行固定 但是每1行的列数不固定 //string[][] arr = new string[3][]; //arr[0] = new string[4]; int[][] arr = { new int[] { 1, 2, 3 }, new int[] { 1, 2, 3, 4, 5, 5 } }; // int[] arr = { 1,2,3,4,5}; //行列都固定的情况下 使用二维数组. // string[,

char数组

*****************************************************************char 类型的数组(c语言中是没有字符串的)char name[20]是数组还是字符串?char name[20]是 char 数组 赋值方式1:char name[20]="abcd_1234";(或者char name[]="abcd_1234";)(这样子赋值有\0的存在)char time[9] = {0, 0, 0, 1, 0