指针数组声明及初始化(关于C++的结构指针数组的声明和初始化问题)

本文目录
关于C++的结构指针数组的声明和初始化问题
for(i=0;i《5;i++)
{
stu = (student*)malloc(sizeof(student));
没有为指针分配内存
二维数组和数组指针的初始化
char
m;
m={"asd","fgh","jkl"};
当然不行,不管从初始化器,还是从原理上来讲都不正确,首先a表示的是数组中第4行第5个元素,请问,可以对数组中具体的一个元素赋这么长一串值吗?所以不能这样赋值。第一种写法是属于初始化,初始化会自动为数组中的每一个元素赋正确的值。
数组指针初始化方法:
int
(*p);
char
a;
p=a;
p=&a;
p=a+1;
p=&a;
//都正确
p=a;
//错误
p=a;
//错误。
首先,指针p表示的是,指向一个含有4个元素的一维数组的指针,因此,必须把一个含有4个元数的数组的地址赋给指针p才会正确。因为二维数组名a,其实就是&a,他只含有一个元素,不是一个数组的地址,所以错误
具体的情况可以去本人的文库下载关于指针的文章,里面有关于二维数组和指针的详细计算过程。
C指针数组的初始化
你声明的是一个float类型的指针数组ranges
也就是说数组的每个元素都是指向float 类型变量的指针,你直接用数值360去赋初值,肯定是错的,0是正确的,因为它把0当成了空指针NULL来处理。
正确的赋值方法,只有声明几个float类型的指针变量,再用这些指针变量给指针数组 ranges 赋初值。
比如:
float a,b,c;
float *ranges={&a,&b,&c};
数组的声明有哪些方式
数组的4种声明方式:
1.先声明再初始化
例如:
//1.声明
int nums;
//初始化
nums = new int;
2.声明并初始化
例如:
//2.声明、初始化
int;
3.创建数组同时赋值
例如:
//3.创建数组同时赋值
String{"大名","小米","夏雨荷"};
int{21,22,21,56,13};
for (int i = 0;i 《 names.length;i++){
System.out.prinrln(names);
}
for (int i = 0;i 《 ages.length;i++){
System.out.prinrln(ages);
}
4.创建同时赋值,简写,不能写成两条语句
例如:
//4.创建同时赋值,简写,不能写成两条语句
String cities = {"上海","北京"};
扩展资料:
数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。 这些有序排列的同类数据元素的集合称为数组。
数组是用于储存多个相同类型数据的集合。
在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。
指针数组问题“定义并初始化一个指针数组“
刚刚回答的一个问题:
要求编一自定义的函数sort(),完成对n个字符串的降序排序,然后在main()函数中调用sort()对"Beijing","Shanghai","Shenzhen","Nanjing","Dalian","Qingdao"这6个字符串排序,要求用指针数组表示这6个字符串。你的是按照从小到大,我这是从大到小,道理是一样的。
以下是程序:
//VC++ 6.0编译通过。保存为.c文件就可以编译
//TurboC 我没试过,如果你要用Turbo C编译,请你将里面的注释都删除
//因为在TC中只认识带星号的多行注释。
//此程序虽然是用VC++ 6.0编译,但是是纯C语言的语法。没有包含任何
//C++的内容
#include《string.h》
//进行排序的函数,主要是对字符串数组进行排序
//size表示数组元素个数
//此排序算法使用的是选择排序
//利用到了C语言中的字符串比较函数strcmp(str1,str2)
//此函数的两个参数都是char*类型。
void sort(char *str,int size)
{
int i,j;
for(i=0;i《size-1;i++)
{
for(j=i+1;j《size;j++)
if(strcmp(str)《0)
{
char *p=str;
str;
str=p;
}
}
}
//打印一个字符串数组的内容
//size表示字符串数组元素的个数
void print(char *str,int size)
{
int i;
for(i=0;i《size;i++)
{
printf(str);
printf(",");
}
printf("\n");
}
void main()
{
char *str={"Beijing","Shanghai","Shenzhen","Nanjing","Dalian","Qingdao"};
printf("排序之前的结果:\n");
print(str,6);
sort(str,6);
printf("排序之后的结果:\n");
print(str,6);
}
如何创建指向字符串变量的指针数组及初始化
1、在运行命令中输入”char *str={"Hello","C++","World"}“。
2、按照步骤运行命令:#include 《stdio.h》,#include 《string.h》,void main()
{char *str = {"Hello", "C++", "World"}。char **p;for(p=str; p《str+3; p++)puts(*p); }
指针数组是指在C语言和C++语言中,数组元素全为指针的数组。
指针数组可以作为函数的参量使用,使用方式与普通数组类似。
指针数组常适用于指向若干字符串,这样使字符串处理更加灵活方便。

更多文章:
force-unicode-font是什么意思?ღ᭄ꦿ这些特殊字是怎么来的
2026年9月27日 23:50
java重载和覆盖的定义(java中方法重载和重写的区别和定义)
2026年9月27日 22:50
变幻金刚魔方教程图解(变幻金刚魔方的最后一步,研究了很长时间就是搞不 出来,能教教我吗)
2026年9月27日 21:00
怎样使用dreamweaver(怎么用dreamweaver制作网页如何用dreamweaver制作网页)
2026年9月27日 20:40
css提交按钮怎么写(html:submit能加css样式吗)
2026年9月27日 19:20
雨崩近年危险事件调查(下雨好长时间了,去雨崩的路况怎么样有刚从雨崩回来的吗)
2026年9月27日 13:20
shell脚本substr(SHELL脚本对LINUX下指定文本文件的满足条件的行的特定位置字符串进行替换)
2026年9月27日 10:50





