hyfm.net
当前位置:首页 >> 字符指针数组初始化 >>

字符指针数组初始化

哥哥来回答.char a[8];这样定义了一个数组后,数组名a就是个地址常量,也就是指针常量,只能指向该数组在内存地址空间中的首地址.不可以指向别的地址.所以如果a = "hello";就是把字符串常量"hello"的首地址赋给地址常量a,这是不允许的.而如果写成char a[8] = "hello";这就是在定义数组a的时候就对其初始化,把"hello"串的每个字符赋值给数组a的元素.这是合理的.并不是非得必须在定义的时候初始化,也可以定义之后再初始化,比如:char a[8];int i = 0; for (i = 0; i { a[i] = i; }

char *cp[3];cp[0]=".."; cp[1]=

char *p[5]的意思是定义五个指针,指针的类型是char;char s[5]的意思是定义5个字符;p[i]=s[i]的意思是把第i个字符赋值给第i个字符指针,这样当然会错了.这样才是正确的:p[i]=&s[i],意思就是把第i个字符的地址赋值给第i个字符指针.

字符数组的初始化形如: char apple[5]={'a','p','p','l','e'} 字符串指针变量的初始化形如: char *p;p="apple" 或者char*p="apple" 调用上 输出apple[5]只需 for(i=0;i<5;i++) { printf("%c",apple[i]); } 指针则是: while(*p!='\0') 字符串结束标志位\0 printf("%c",*p++);

给字符数组赋值分两种情况,单字符赋值和字符串赋值.单字符赋值,可通过数组下标方式或指针方式,引用数组元素,进行赋值,如:char a[10]; char ch='a'; for( i=0;i a[i]=ch+i ; //可通过数组下标引用数组元素,完成赋值 char *p; for( p=a; p *p

1、直接逐个初始化字符数组:字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'i',' ','a','m',' ','h','a','p','p','y'};注意:如果花括号中提供的字符个数大于数组长度,则按语法错误处理;若小于数组长度,则只

首先确定是字符指zhidao针数组还是字符数组指针,前者是一个数组,数组每个元素都是一个字符指针,后者是一个指向字符数组的指针.若是指向字符数组的指针,则很简单,使用scanf("%s", str);函数获取输入的字符串,然后使用字符串拷贝函数strcpy(stc, dest);将获取的字符串拷贝到指定地址的字符指针数组版中,拷贝过程中注意检查访问数组是否越界,若越界,则需要在字符数组的最后一个元素赋值为结束符权'\0'.若是赋值 字符指针数组,那么就是对数组中的某一个元素指向的字符数组进行拷贝赋值,其过程与前者相同.

看清楚以下语句char *str[30]; char name[30];str[30]=name; //首先这里越界,先不提越界的事.首先str是一个指针数组,也就是说str中的每一个成员都是一个指针,比如str[0]是一个指针char类型的指针,str[1]也是,str[2]str[29]都是一个char类

/定义一个二维数组 uint8_t test[3][2] = {{1,2},{3,4},{5,6}};//定义一个指针,指向该数组首元素 uint8 (*p)[2] = test;//取t[0][1] tmp1 = p[0][1];//用数组方式 tmp1 = *(p[0] + 1);//指针地址加数组下标方式 tmp1 = *( *(p + 0) +1 ); //纯地址方式

char a[] = "abc"; 这里的"abc"放在数组中,在堆栈上,可以修改.char *a = "abc"; 这里的字符串"abc"在静态存储区中,不能修改.且最好写成 const char *a = "abc";

网站首页 | 网站地图
All rights reserved Powered by www.hyfm.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com