c语言指针定义数组
⑴ 指针定义数组(求会c语言的强者)
p=(struct student*)malloc(...) sum初始值是0,没分配空间, 这条语句应该在输入sum的值之后
⑵ c语言中怎么用指针定义数组的地址
那是指针定义的时候必须要*号,int *p = a ,相当于 int *p ; p = a ; 两步合做一步了。
⑶ c语言指针数组
p是int类型指针,指向数组a的第1个元素即一个一维的数组{1,2,3}首地址所以p[1]相当于a[0][1]所以printf("%d\n",p[1]);
输出2 。 int **pp =pa 是声明了一个指向pa的指针,而pa又是指向a首地址的int类型指针。pa指向的是a的第一维,pa[0] = a[0] ,pp[2][1]相当于a[2][1]而a数组的[2]中只初始化了[2][0]位置的7,那[2][1]位置就是默认的值0,所以printf("%d\n",pp[2][1]);
输出0
⑷ c语言关于指针数组
实际上来说应该是int* p,这样指的是p是指针变量。但是int* p, q这样的话,p是指针专变量,q是普通变量。属所以定义的时候要把*靠近变量名来写,以方便阅读。在使用的时候*p是取值。不明白可以追问。
⑸ C语言中关于指向数组的指针
char str[100];
char *pi=str; //相当于char *pi ;pi=str;
char **ppi=*pi;//这个地方抄错了。应为char **ppi=π
定义加*表明这是指针类型的变量
用的时候,就是专用的指针,加*干什么。
只有属取指针所指变量的值,或给指针所指的变量赋值的等涉及指针所指的变量的时候,
才会又加*号,表示获取或改变,指针所指变量的值。
char x=10;
*pi =x; //给指针所指的变量赋值,改变指针所指变量的值(改变*pi) 。
x=*pi; //取指针所指的值,取指针pi所指的变量的值(表示为*pi)赋值给x。
⑹ c语言 定义数组前加个星号什么意思具体说一下。数组指针难道就是这样定义,初始化的那数组名就是c
char *ch[4]={"red","green","blue"};
这句话的意思是这样,定义一个指针数组ch[4],这个数组里面每个元素都是指针,这些指针是r、g、b这三个字符串的头指针,还有一个是指向“\0”的作为字符串的结束标志。
简单点说,这样的定义是定义一个二维字符数组,数组的第一行就是第一个字符串"red",第二行是"green",第三行书"blue",第四行是"\0"。之后就可以用ch[0][1]表示第一个字符串的第2个字母,这里就是e,ch[1][4]表示第二个字符串的第五个字母,这里就是n。
⑺ C语言指针变量可以当做数组吗
比如说定义int *w
然后下边就可以用作w[i]
这么对吗?
对的话在什么情况下可以这么使用?
答:不可以,因为w这时还是野指针。只有这样
int *w,a[44];
w=a;
操作后才可以,操作w就与操作a一样了。而且,操作指针比直接操作数组名更方便,因为指针是变量,可以++、--,而数组名是常量,不能++、--。
你追问的那个红框框中的问题不是指针与数组名的问题,而是“形式参数”与“实际参数”的问题。写函数定义的()中的前面带类型说明符的变量名叫形式参数。形参与实参相比,最大的特点就是不用担心没有赋值或初始化就拿来引用,它们是留着调用时才用实参自动赋值的。而实参则不然,没有赋值时拿来做右值,就会被警告“引用了没有初始化的变量”,而且因为初值是随机的而结果一般都是错误的。
⑻ C语言中用指针变量指向数组元素
main()
{int
a[10];
//定义数组a为整型
int
*p=a,i;
//p指向a的地址,即a[0]的地址
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//给数组a赋值
printf("\n");
for(p-a;p<(a+10);p++)
//输出数组元素
printf("%d",*p);
//p++表示p指向数组中下一个元素的地址
}
暂时先写这么多,你一开始没给p赋值是不对的~
⑼ c语言中怎么定义一个字符串数组指针
c语言中定义一个字符串数组指针可以回这样答写:
//Exampleprogram
#include<stdio.h>
intmain()
{
charstr[]="abc";
char*p=str;
printf("%s ",str);
printf("%s ",p);
return0;
}
⑽ c语言中如何定义动态指针数组
可以这样子写
int n;
printf("请输入你想定义的数组的大小:\n");
scanf("%d",&n);
int *a = (int *)malloc(n*sizeof(int));//申请n个整形数据空间 ,头文件为stdlib.h/malloc.h
if(a == NULL)//申请失败返回回-1
{printf("aply error\n"); return -1;}
memset(a, 0, n); //初始化申请到的答空间为0,头文件为string.h
但是定义不了动态数组