×

指针数组赋值 指针数组 数组

指针数组赋值(C语言如何给指针数组动态赋值)

admin admin 发表于2022-09-06 14:05:04 浏览273 评论0

抢沙发发表评论

本文目录

C语言如何给指针数组动态赋值


可以试试再创建一个char类型的二维数组,如char temp,然后分别把temp[0 ... 15]的每一个元素temp[...][0...14]赋上’a’ + 随机数值(0 ~ 25的)。再把temp[...]赋值为’\0’。最后把str[0...15]分别指向temp[0...15]

C语言 如何给字符指针数组赋值


字符指针数组的赋值和普通数组的赋值是一样的,只不过字符指针数组里的元素是指针。

以下是字符指针数组赋值的示例:

char* pChar;
char str1 = “First“;
char str2 = “Second“;
char str3 = “Third“;
char str4 = “Fourth“;
char str5 = “Fifth“;
pChar = str1;
pChar = str2;
pChar = str3;
pChar = str4;
pChar = str5;
for (int i=0;i《5;i++)
{
printf(“pChar[%d] = %s\n“,i,pChar[i]);
}
-指针数组

数组指针赋值


int a = {{1, 2, 3}, {4, 5, 6}};
int (* p) ;
p = &a;

首先解释一下int (* p) ;指向数组的指针,首先它是一个指针,只是一个,它用指向一个数组,该数组有3个元素,这个是比较通俗的说法了。
你的a就是
1 2 3
4 5 6
而p = &a;表示p指向的是第一行的1 2 3,就代表p=1,p=2,p=3
不是
(*p) = &a
(*p) = &a
(*p) = &a的意思 而且a的地址都跑到末尾了,里面都么有东东了,这个2,3界限不好说。我说一个
int a{{1,2,3},{4,5,6}};
int (*p);
p=&a;
-数组

如何随心所欲给指针数组赋值字符串


字符指针数组的赋值和普通数组的赋值是一样的,只不过字符指针数组里的元素是指针。
以下是字符指针数组赋值的示例:

char* pChar;char str1 = “First“;char str2 = “Second“;char str3 = “Third“;char str4 = “Fourth“;char str5 = “Fifth“; pChar = str1;pChar = str2;pChar = str3;pChar = str4;pChar = str5; for (int i=0;i《5;i++){ printf(“pChar[%d] = %s\n“,i,pChar[i]);}
-指针数组

对于指针类型数组的赋值,应该怎么赋值


指针类型数组?里面存指针就好了啊,比如int *a ;
这个a就是一个int*型数组,里面存的是指向int型数据的指针。
比如int *b=NULL; int c; b=&c
然后你就可以a = b; 这个时候a里面存的就是指向c的指针b。
这种用法需要特别小心,一般建议对指针数组加上const限定符以防止意外修改。
如果你想要的是指向int型数组的指针,声明的时候要用int (*a) ;
如果你要用的话,首先要对*a初始化,然后让它指向目标数组。
比如int b ; a=b;
用的时候*(a+1)=10; 相当于b=10;
特别需要注意的是,小心数组越界的问题。
-数组

指针数组如何赋值


如果没有描述错误的话,指针数组用法如下:
int * p;
int i;
int a,b,c;
p=&a
p=&b
p=&c
但根据我的经验,通常情况下没有必要使用指针数组的,而是使用指向数组的指针,所以怀疑题主描述错误。
如果是指向数组的指针的话,对数组初始化如下 :
int *p;
int a;
int i;
p=&a;
for(i=0;i《3;i++){
*p++=0;
}
-指针数组

在C语言里怎么给指针数组里的某一个元素赋值


不可以
原因很简单
“one“,“two“是存在静态存储区的,这个地址中的值不能被修改。
*(p+1)=getchar();
运行这句,程序应该崩溃
也就是说这种声明:char *p={“one“,“two“};
是不能修改其中指针指向地址中的值的,只能读取

char p={“one“,“two“};
这种声明,变量则是存在栈上的,这时就可以
*(p+1)=getchar();
来修改
-数组

怎样在函数中为结构体指针数组赋值


在函数中给结构体指针数组赋值,分两种情况了,第一,若你已经有结构体对象,只是要将指针指向已经分配内存的结构体,可以用取地址的&来给指针赋值;第二,若你只定义了结构体指针,可用malloc给指针初始化,如:已经有struct
student结构体,定义student
*p;给p初始化则用
p=(student*)malloc(sizeof(student))。
-指针数组

怎么正确地给指向数组的指针赋值


用同类型的值进行赋值.

比如

int (*p);

可以用同类型的

int (*q);

给它赋值.

也可以

int a;

然后用任意一行首地址赋值.

p=a;
p=&a;

等等.

这个是最基础的用法, 也可以强制转换, 实现一维数组 或者其他连续内存, 以数组方式访问.


指针数组之间的赋值问题


*q[k]这个表达式不对,它表示的是*(q[k])。
q[k] 是一个指针,但是它指向哪里?没有初始化一个指针(野指针)就给它赋值,明显会错误。
另外,你这句 *q[k]=*s[k];话应该是想字符串拷贝,应该用strcpy函数。你这样即使q初始化了,拷贝也不会成功。
-数组